我有大约200个工作簿,我需要在一个包含数千个文件的目录中打开。这200个文件的名称已放在Sheet 4 B3:B231
中。
然而,每当我运行宏时,我只得到代码来处理这些文件中的4个,在指定范围内甚至没有提到4个中的1个。
Dim wb As Workbook, shtDest As Worksheet
Dim MyFile As String
Dim Filepath As String
Dim WoBo As Variant
Dim DirArray As Variant
DirArray = Sheets("Sheet4").Range("B3:B231").Value
Filepath = "C:\"
MyFile = Dir(Filepath)
Set shtDest = ThisWorkbook.Sheets("Sheet1")
For Each WoBo In DirArray
'code
Next WoBo
End Sub
我对数组很新,我不太了解For Each行,所以我怀疑错误存在。
尝试以下内容。 For循环比数组For For快,并且使用Transpose将其转换为一维数组以循环。
Dim dirArray()
dirArray = Application.Transpose(ThisWorkbook.Worksheets("Sheet4").Range("B3:B231").Value)
For i = LBound(dirArray) To Ubound(dirArray)
If instr(dirArray(i),"xls") > 0 Then '<== very basic check
Workbooks.Open(dirArray(i)) '<== should be full filepath of file
' Do stuff
End If
Next