0

コピーアンドペーストマクロを実行していますが、実行すると、数式の範囲が行の最後まで変更され続けます。

たとえば、元の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

何か案は?

4

2 に答える 2

0

INDIRECT()関数を使用して、式が常に必要な行を参照するようにすることができます。簡単な例を次に示します (詳細については、このリンクを参照してください)。

=SUM(INDIRECT("A1:A6"))
于 2012-12-06T19:10:12.903 に答える
0

最初はpastevaluesを使用しているため、2ページ目に数式が表示されませんが、エラーはコードの最後の行にあります

shPriorWeek.Range("A" & lr - 2 & ":A10000").EntireRow.Delete

数式がこの範囲と重複しているため、削除する Excel は vlookup 数式を自動的に調整します。

値を貼り付ける前にデータを削除することをお勧めします。

*数式が既にページにある場合、コメントを読んだ後に編集すると、この解決策は機能せず、ティムの提案に従って代わりに clearcontents を使用します。

于 2012-12-06T19:10:27.567 に答える