我有以下 Excel 电子表格:
A B C D E F
1 2019-03 2019-04 2019-05 2019-06 2019-07
2
3 Revenue 500 600
4 COGS -40 -30
5 Gross Profit 460 570
6
7 OPEX -10 -12
8 Interests -20 -50
9
8 EBT 430 508
公式:
B5 = SUM(B3:B4)
C5 = SUM(C3:C4)
B10 = B5+B7+B8
C10 = C5+C7+C8
电子表格显示公司每月的业绩。
每次到达新月份时,我都想将上个月的值复制到新月份。因此我开发了以下
VBA
本月 2019-05
:Sub test()
Sheet1.Range("C5:C14").Copy
Sheet1.Range("D5:D14").PasteSpecial
End Sub
到目前为止,这一切都很好。
现在我的问题是我必须每月手动调整 VBA 的范围以复制上个月的值。
因此,我想知道是否有办法告诉 VBA 哪个是最后一个非空月份,然后将本月的值/公式复制到下个月。
最佳答案
您可以使用以下代码找到行中最后使用的列
Sub Last_Used_Column()
'Find the last used column in a Row: row 1 in this example
Dim LastCol As Long
With ActiveSheet
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
End With
MsgBox LastCol
End Sub
您可以在代码中附加上述代码,并在需要的任何地方使用 LastCol 变量。
关于excel - 自动将 VBA 中的范围调整到第一个空列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57096878/