ここに私のコードがあります。私は範囲内で最後に入力された行を見つけようとしています。そのデータを数式として次の空白行にコピーします。最後に入力した最後の行をもう一度コピーし、2番目から最後に入力した行に値として貼り付けます。簡単に言えば、最後の行/セルの式を1行下に移動し、そのデータを数値としてコピーした場所に保持します。したがって、新しいデータがファイルに取り込まれると、数式が再計算され、以前の計算されたデータが失われることはありません。うまくいけばそれは理にかなっている。以下のコードは実行されますが、既存の行に値としてデータを貼り付ける以外には何もしません。私は間違って何をしていますか?データをコピー/ペーストするマクロ
Sub Data Copy()
Dim myLastCell As Range
Set myLastCell = LastCell(Worksheets("YTD Metric Calculator").Range("E7:J76"))
Sheets("YTD Metric Calculator").Range("E7:J" & myLastCell.Row).Copy
Sheets("YTD Metric Calculator").Range("E7:J" & myLastCell.Row + 1).PasteSpecial Paste:=xlPasteFormulas
Sheets("YTD Metric Calculator").Range("E7:J" & myLastCell.Row).Copy
Sheets("YTD Metric Calculator").Range("E7:J" & myLastCell.Row + 1).PasteSpecial Paste:=xlPasteValues
'Retain Yesterday's YTD Metric Data
Function LastCell(r As Range) As Range
Dim LastRow&, lastCol%
On Error Resume Next
With r
LastRow& = .Cells.Find(What:="*", _
SearchDirection:=xlPrevious, _
SearchOrder:=xlByRows).Row
lastCol% = .Cells.Find(What:="*", _
SearchDirection:=xlPrevious, _
SearchOrder:=xlByColumns).Column
End With
Set LastCell = r.Cells(LastRow&, lastCol%)
End Function
あなたは、変数名に特殊文字を使用しているのはなぜ? :) –
@DavidG。 '&'と '%'を参照する場合、型識別子です。 '&'は 'Long'、'% 'は' Integer'です。本当に、本当に、いつものように「As Integer」などが存在しなかった時から酔っ払い。 – YowE3K