【发布时间】:2017-08-30 13:05:15
【问题描述】:
我目前正在尝试设置一个Do While 循环,其中循环的一部分只执行一次。我正在有效地尝试为一张工作表定义一个单元格范围,然后让我的循环将此相同的单元格范围应用于所有工作表/工作簿,而无需重新指定范围。
这是我目前所拥有的:
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 是指定的单元格范围。但是,在第二个循环中,rng.Address 变为<ObjectRequired>,因此脚本的其余部分将失败。关于如何将 rng.Address 永久设置为指定单元格范围的任何想法?
【问题讨论】:
-
您是否正在关闭“这里有更多内容”中的 wb?