ここでは、「マクロの実行後に移動したい」という意味を想定しています。名前付き範囲を移動させたいということです。
週ごとに時間を追跡するためのスプレッドシートがあり、「最初の」シートがアクティブなシートです。週が終わったら、アクティブなシート全体を新しいシートにコピーします。前の週から持ち越したい合計があるので、そのデータを保存します。これを行うには、現在の週の合計、古い (前の週の) 合計、新しい合計の 3 つの列があります。新しい合計から古い合計に値を貼り付けます。次に、入力に使用するセルをクリアします。
私のすべての本能は、名前付きセルを使用することでしたが、この場合、それは正しいことではないと結論付けました。セル範囲(A1、K2:K0など)を使用しました。問題は、名前が各シートにローカルではないため、名前を古いシートから新しいシートに移動する必要があることです。それはそうではありません努力する価値があります。また、この場合、各シートに固有の同様の名前 (Mon-FriWeek1、Mon-FriWeek2 など) を作成するという代替手段では、Week1!A1:A10 などより実用的なものは得られません。 --あなたが「想定」されているような名前を使用したという自己満足を除いて. とにかくそれは私の意見です!
そして、これが役立つかもしれません。私のスプレッドシートでは、ある週から次の週に行を追加/削除できます。それを可能にし、名前付き範囲を回避するために、各行に数式がある列に移動し、Shift + End を押してから下矢印を押すことを模倣します。選択は、何かが入力された最後のセルで停止します。そのためのコードは次のとおりです (最初の行はヘッダー/ラベルです)。
'Copy New Total Hours as PasteValues to Old Total
Dim lastRow As Long
Range("K1").Select
Range(Selection, Selection.End(xlDown)).Select
lastRow = Selection.Rows(Selection.Rows.Count).Row + 1
Range("K2:K" & CStr(lastRow)).Select
Selection.Copy
Range("J2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
そこに少なくとも 1 つの行を保持する必要があります。そうしないと、それ (および私の場合は他の非常に多くのもの) が機能しません。しかし、それは私のニーズにぴったりです。
これが役立つことを願っています。