私は 20 個の Excel ワークブックを持っていますが、それぞれが異なるデータで動作することを除いて同じです。数式を改良して更新する必要があることがよくあります。数式をソース ワークブックから他の各ワークブックに順番にコピーします。
私は VBA を使用してマクロを記録し (これはそれほどエレガントではありません)、必要な変更をコピーして貼り付けます。これで問題ありませんが、マクロを 20 回コピーし、そのたびに対象のブック名を変更するのは面倒です。私が推奨する解決策は、ループを設定し、ターゲットごとに順番にマクロを呼び出すことで自動化することです。
私はマクロが初めてで、これの正しい構文に苦労しています。
以下を試してみましたが、うまくいきません。「オブジェクト変数が設定されていません」というエラー メッセージが表示されますが、よく理解できず、解決できません。
Sub New()
'
Dim i As Integer
Dim target As Workbook
target(1) = "Workbook1.xlsx"
target(2) = "Workbook2.xlsx"
'etc for the other countries
For i = 1 To 20
Update
Next i
End Sub
Sub Update()
' Update macro copies updated cells from workbook Country A.xlsx to target workbook
Windows("Country A.xlsx").Activate
Sheets("Tax").Select
Rows("17:26").Select
Selection.Copy
Windows(target(i)).Activate
Sheets("Tax").Select
Range("A17").Select
ActiveSheet.Paste
' Etc for other changes required
End Sub
私が欠けているものについて何か助けていただければ幸いです。