excel - 自动将 VBA 中的范围调整到第一个空列

标签 excel vba

我有以下 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/

相关文章:

vba - 删除底部的空行

.net - 使用 64 位插件的 Excel 32 位

引用更改工作表名称的excel vba countifs公式

excel - 如何在 VBA Sub 中应用 SumIf 公式?出现错误 1004

vba - Excel VBA - 将表列存储到范围变量中

excel - VBA插入函数VLOOKUP到范围,在其他工作簿中查找范围

vba - 删除工作表/图表事件 VBA

excel - 隐藏行或列时在 Excel VBA 中触发事件

java - 每次我写入 excel 时,它都会用一个空白文件覆盖整个文件 - PUZZLED

excel - 使用嵌套循环对特定单元格求和