【发布时间】:2019-07-25 09:31:39
【问题描述】:
我正在尝试使用 VBA 打开文件夹中的文件,条件是它们的名称与其他文件的名称相似,而其他文件的名称也将被打开。
使用以下代码,我从文件夹 1 打开名称为“1_FirmA_v1.0”、“1_FrimB_v1.0”的文件,然后我对这些文件执行一些命令。
我的问题是我想从 folder2 打开文件,只要它们的名称与循环中 openend 的 folder1 中的文件的名称相似。 folder2 中文件的名称是“2_FirmA_v1.1”、“2_FirmB_v1.5”、...。因此,当我从文件夹 1 打开“1_FirmA_v1.0”时,我想从文件夹 2 打开“2_FirmA_v1.1”。问题是我不知道如何以动态搜索文件名的方式放置代码的第二个文件夹,因为不清楚该文件的确切名称。这是我迄今为止尝试过的:
Sub Makro1()
Dim x As Workbook
Dim y As Workbook
Dim myPath, fname
myPath = "C:\Desktop\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.GetFolder("C:\TEST\")
fname = Dir(fldr & "\1*")
'fname2 = myPath2 & "Daten" & Mid(fname, Len(fname) - 12, Len(fname) - 25) & "v2.1test.xlsx"
'fname3 = myPath3 & "Daten" & Mid(fname, Len(fname) - 12, Len(fname) - 25) & "v2.0.xlsx"
Do While fname <> ""
Set x = Workbooks.Open(fldr & fname)
Set y = Workbooks.Open(myPath & "2" & Mid(fname, Len(fname) - 31, Len(fname) - 25) & "v*")
x.Activate
fname = Dir
Loop
不幸的是,我似乎无法在命令 workbooks.open 中使用“*”。有人知道另一种处理方式吗? 最好的问候
【问题讨论】: