我正在運行復制粘貼宏,但是當我運行它時,它會不斷將我公式的範圍更改爲最後一行。VBA絕對公式範圍在運行副本時發生變化+粘貼宏
例如,我的原始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行,這是一個問題。 – kmiao91