Vba 循环进行一次轻微的更改-打开文件夹和文件,然后再次执行相同的循环,但从下一个文件夹打开文件
我是VBA新手,希望能得到一些帮助。我不认为这有那么难,只是我的知识限制了我 我创建了以下子文件夹,用于打开文件夹“beamresult\1”中包含*100的文件,效果非常好。 然而,我的挑战是,我有12个不同的文件夹,我希望从中打开文件。 另外,在这些文件夹中,我想打开不同的文件*100、*200、*900 在某种程度上,我想循环这个子文件夹,从文件夹1到12。在所有这些文件夹中打开所有文件并进行编辑 (在完整子文件中,在“循环”之前有许多代码用于编辑我的文件,但所有文档都应进行相同的编辑。) 希望有人有一个聪明的想法如何解决这个问题Vba 循环进行一次轻微的更改-打开文件夹和文件,然后再次执行相同的循环,但从下一个文件夹打开文件,vba,excel,Vba,Excel,我是VBA新手,希望能得到一些帮助。我不认为这有那么难,只是我的知识限制了我 我创建了以下子文件夹,用于打开文件夹“beamresult\1”中包含*100的文件,效果非常好。 然而,我的挑战是,我有12个不同的文件夹,我希望从中打开文件。 另外,在这些文件夹中,我想打开不同的文件*100、*200、*900 在某种程度上,我想循环这个子文件夹,从文件夹1到12。在所有这些文件夹中打开所有文件并进行编辑 (在完整子文件中,在“循环”之前有许多代码用于编辑我的文件,但所有文档都应进行相同的编辑。)
Sub OpenFiles()
'opens all files in a folder
Dim MyFolder As String
Dim MyFile As String
MyFolder = "C:\Beamresults\1"
MyFile = Dir(MyFolder & "\*100.xls")
Do While MyFile <> ""
Workbooks.Open Filename:=MyFolder & "\" & MyFile
MyFile = Dir
Loop
End Sub
子OpenFiles()
'打开文件夹中的所有文件
将MyFolder设置为字符串
将MyFile设置为字符串
MyFolder=“C:\Beamresults\1”
MyFile=Dir(MyFolder&“\*100.xls”)
当我的文件“”时执行此操作
工作簿。打开文件名:=MyFolder&“\”&MyFile
MyFile=Dir
环
端接头
子OpenFiles()
'打开文件夹中的所有文件
将MyFolder设置为字符串
将MyFile设置为字符串
暗x等长
对于x=1到12
MyFolder=“C:\Beamresults\”&x
MyFile=Dir(MyFolder&“\*”&x&“00.xls”)
当我的文件“”时执行此操作
工作簿。打开文件名:=MyFolder&“\”&MyFile
'处理并关闭文件
MyFile=Dir
环
下一个x
端接头
所有文件夹是否都在同一个更高级别的文件夹中?如果是这样,递归函数将是“遍历”所有子文件夹以查找带有*的文件的最简单解决方案???并处理它们。是的,所有文件夹1-12都在同一个文件夹中。递归函数可能会起作用。其中一个看起来怎么样?太好了,蒂姆!正如我所说,简单的解决方案。但我还有一个问题。稍后,我的文件将不会像*100这样简单地命名(这只是一个测试运行)。他们将被称为不同的人;TopChord、Post、TopChod_P、TopChord_DP和其他7个不同的名称。如何解开这个谜?有没有可能为所有这些名称创建一个字符串、数组或类似的东西,并遍历所有这些名称?
Sub OpenFiles()
'opens all files in a folder
Dim MyFolder As String
Dim MyFile As String
Dim x as Long
For x = 1 to 12
MyFolder = "C:\Beamresults\" & x
MyFile = Dir(MyFolder & "\*" & x & "00.xls")
Do While MyFile <> ""
Workbooks.Open Filename:=MyFolder & "\" & MyFile
'process and close file
MyFile = Dir
Loop
Next x
End Sub