之前我有一段代码,它使用GetOpenFilename来选择单个文件,设置变量,并询问您是否要选择另一个文件(Y/N),执行更多代码以打开第二个文件等。如果用户在任何时候选择“NO”,则会跳过其余的代码。
现在我正在尝试让一个存储在工作簿中的宏打开最多三个文件。然后需要将每个工作簿作为自己的变量,因为它需要在每个工作簿中查找一个字符串,然后将这些变量传递到另一个模块。我无法弄清楚如何为代码设置每个工作簿。感激任何帮助。
Dim files As Variant
Dim i As Integer
Dim WBtemp1 As Workbook
Dim WBtemp2 As Workbook
Dim WBtemp3 As Workbook
Dim RF As String
files = Application.GetOpenFilename(FileFilter:="Excel workbooks (*.xls*),*.xls*", Title:="Please select up to 3 Files", MultiSelect:=True)
If Not IsArray(files) Then Exit Sub
If UBound(files) < 3 Then
MsgBox "You have selected more than 3 files."
End If
For i = 1 To UBound(files)
Workbooks.Open files(i)
Next
Set WBtemp1 = Workbooks(1)
Set WBtemp2 = Workbooks(2)
Set WBtemp3 = Workbooks(3)
RF = WBtemp1.Worksheets(1).Range("V3")
RF1 = Mid(RF, 12, 8)
RF = WBtemp2.Worksheets(1).Range("V3")
RF2 = Mid(RF, 12, 8)
RF = WBtemp3.Worksheets(1).Range("V3")
RF3 = Mid(RF, 12, 8)
Call Macro2(WBtemp1, WBtemp2, WBtemp3, RF1, RF2, RF3)