ActiveSheetで行っている処理を、全てのSheetに反映させたいのですが、
どうすれば良いでしょうか?
Sheet数が多い事と、Sheet名がランダムな為、Sheetを指定しての処理は
避けたいと思っています。
ExcelVBAで作業してます。
よろしくお願い致します。
Dim ws As Variant
For Each ws In Sheets
Sheets(ws.Name).Range("A1", "B2").Value = ""
Next
For文の中身をTTさんの処理にすれば
これでできると思いますよ。
ちなみにこれは全ワークシートの
A1,A2,B1,B2のセルの値を初期化してます。
お返事遅れて申し訳ありません。
ODYさん、ありがとうございました。
自分で強引な方法を考えた結果、
Sheetを1枚目から全て見て次のシートのA1セルに入力値があったら処理を実行する、
ということをしてみました。
sheetno = 0
Worksheets(1).Activate
Do Until Worksheets(sheetno + 1).Range("A1") = ""
sheetno = sheetno + 1
Worksheets(sheetno).Activate
loop
これで、全てのシートを一枚ずつアクティブにして、処理を実行させました。
データ量が多い為、処理が完了するまで1時間くらいかかりますが。。。苦笑
強引でしたよね。
ODYさんに教えて頂いた方が、全然スマートで良いです。
ありがとうございました。
ツイート | ![]() |