我正在尝试在 VBA 中执行看似简单的动态范围任务。
上表有从外部网站下载的数据。每天都会向其中添加新行。
第二个表引用了第一个表。例如,此表中的日期列将是 =USA!A18。
我想编写一个 VBA 脚本,以便每当将新数据添加到第一个表时,我都可以运行宏以向下扩展第二个表的行/公式以添加新数据。
因此,如果将 5 个新行添加到第一个表中,宏会将第二个表中从 A 列到 W 列的现有行和公式向下扩展 5 个。在不破坏电子表格中的其他代码的情况下,它不能有任何空白行或 #VALUE 错误。数据从 A9 开始并扩展到 W9。
我尝试实现以下内容:
Sub extendrows()
Dim lastRow As Long
lastRow = Worksheets("USA").Range("A" & Rows.Count).End(xlUp)
Worksheets("USA defprob").Range("A9:W9").AutoFill Destination:=Range("A9:W" & lastRow)
End Sub
但我得到一个内存错误,我怀疑这是因为它粘贴了几千行空白行而不是停止。如何调整此代码以执行我需要宏执行的操作?
最佳答案
你可以试试这个:
Option Explicit
Sub extendrows()
Dim nDataRows As Long
With Worksheets("USA")
nDataRows = .Range("A" & .Rows.Count).End(xlUp).Row - 2 ' assuming data start from row 3 in "USA"
End With
With Worksheets("USA defprob").Range("A9:W9")
.AutoFill Destination:=.Resize(nDataRows)
End With
End Sub
关于扩展行的 VBA 动态范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40135472/