For Each - 在数组中打开指定的工作簿

问题描述 投票:-1回答:1

我有大约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行,所以我怀疑错误存在。

excel vba
1个回答
0
投票

尝试以下内容。 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
© www.soinside.com 2019 - 2024. All rights reserved.