現在ループの一部が一度だけ実行されるDo While
ループを設定しようとしています。私は効果的に1つのシートのセル範囲を定義しようとしているし、私のループは、範囲を再指定することなく、すべてのシート/ワークブックにこの同じセル範囲を適用します。ループの後に変数値を忘れてしまいました
isExecuted = False
Do While FileName <> ""
' Open a workbook in the folder
Set WorkBk = Workbooks.Open(Folder & "\" & FileName)
' Conditional to select range only once
If Not isExecuted Then
Dim rng As Range
Set rng = Application.InputBox("Select a Range", "Obtain Range Object", Type:=8)
Debug.Print (rng.Address)
MsgBox "The cells selected were " & rng.Address
isExecuted = True
End If
Set SourceRange = WorkBk.Worksheets(1).Range(rng.Address)
' more stuff goes here
デバッグモードでは:ここで
は、私がこれまで持っているものです。このループが最初に実行されると、すべてが正常に動作し、rng.Addressが指定されたセル範囲であることがわかります。しかし、2番目のループでrng.Addressは<ObjectRequired>
になり、残りのスクリプトは失敗します。 rng.Addressを指定されたセル範囲に永久に設定する方法に関するアイデアはありますか?
「more stuff goes here」でwbをクローズしていますか? – exSnake