簡體   English   中英

運行復制+粘貼宏時VBA絕對公式范圍發生變化

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM