[英]VBA Absolute Formula range changing when running a copy + Paste macro
我正在運行復制粘貼宏,但是當我運行它時,它會將我公式的范圍不斷更改為行的最后一行。
例如,我原來的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
有任何想法嗎?
您可以使用INDIRECT()函數,以便該公式將始終引用您希望的行。 這是一個簡單的示例(有關更多詳細信息,請參見此鏈接 ):
=SUM(INDIRECT("A1:A6"))
首先,您使用的是pastevalues,因此您不會在第二頁上看到任何公式,但是錯誤在於代碼的最后一行
shPriorWeek.Range("A" & lr - 2 & ":A10000").EntireRow.Delete
由於您的公式與該范圍重疊,因此您要刪除的excel會自動調整vlookup公式。
我建議在粘貼值之前刪除您的數據。
*在閱讀評論后進行編輯(如果公式已經在頁面上),那么該解決方案將無法正常工作,根據蒂姆的建議,我將使用clearcontents。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.