早上好!Get.OpenFilename数组+'For Each'或'Do While'?
我一直在学习VBA一周现在...就像从瀑布喝酒一样。尽管研究我似乎无法把它放在一起。本小节将打开多个选定的工作表,根据需要进行编辑,直到编辑完所有工作表。
我使用GetOpenFilename捕捉多个文件,然后我想已经打开,并通过我的StandaloneReportEdit宏观运行 - 我不确定为什么我不能调用创建阵列,或者我应该研究,以找出答案:
Dim my_FileName As Variant
my_FileName = Application.GetOpenFilename(_
filefilter:="Excel Files,*.xl*;*.xm*", _
Title:="Select Excel File to Open", _
MultiSelect:=TRUE)
If my_FileName = False Then End
Set wb = Workbooks.Open(my_FileName, False, False)
Call StandaloneReportEdit 'Sub to very thoroughly edit reports
我会在哪里使用'For Each'(或者可能是Do While),我无法完全弄清楚要引用什么......会是这样的工作吗?
For Each my_FileName 'Call StandaloneReportEdit here
或者我应该用“不要当”在下面:
Do While my_FileName = True
If my_FileName = False Then End
Set wb = Workbooks.Open(my_FileName, False, False)
Call StandaloneReportEdit
Loop
这个问题可能不那么彻底,你都可能会喜欢,和我道歉,我想我的思念并且只是指向正确的方向将不胜感激。非常感谢您的时间!
避免'结束'。使用'Exit Sub'来代替整个执行上下文。目前还不清楚你想用'my_FileName'来迭代什么,也不清楚你的问题是什么。请[edit]澄清。 –
如果您正在获取多个文件名,并且您正在尝试对它们进行迭代,则可以很容易地将您的帖子改述为如此。不要道歉,只需修复它! ;-) –
@ Mat'sMug - 我试图捕获从上面的.GetOpenFilename中选择的文件的数组,以便我可以通过调用其中的子来运行所有这些文件。我将进行编辑以澄清,我认为尽管如此,我完全失去了。 – dduz