【发布时间】:2012-12-07 03:16:35
【问题描述】:
我正在运行一个复制粘贴宏,但是当我运行它时,它会不断将我的公式范围更改为行的最后一行。
例如,我原来的 VLOOKUP 公式从 $D$2:$G$5000 查找,但是当我运行宏时,它会将其更改为 $D$2:$G$1254,其中 1254 是数据所在的最后一行。
这里是复制+粘贴功能:
Sub START1()
Dim shCurrentWeek As Worksheet
Dim shPriorWeek As Worksheet
Dim lr As Long
Set shCurrentWeek = ActiveWorkbook.Sheets("Current Week")
Set shPriorWeek = ActiveWorkbook.Sheets("Prior Week")
lr = shCurrentWeek.Range("A" & Rows.Count).End(xlUp).Row
'Copies Current Week into Prior Week and deletes Rows in Prior week
shCurrentWeek.Range("A4:X" & lr).Copy
shPriorWeek.Range("A2").PasteSpecial xlPasteValues
shPriorWeek.Range("A" & lr - 2 & ":A10000").EntireRow.Delete
End Sub
有什么想法吗?
【问题讨论】:
-
删除行时,Excel 将自动调整引用已删除行的所有公式(即使它们使用绝对引用)。尝试清除行而不是删除它们。
-
如果从 1254 到 5000 的行无论如何都会被删除,这有什么关系?查找仍然可以使用 1254 作为最后一个数据行,对吗?
-
是的,但是我运行另一个插入新数据的宏,新数据可能会超过 1254 行,这是一个问题。
标签: vba excel excel-2007