循环使用多个工作簿

时间:2018-02-20 11:03:30

标签: loops

我正在尝试编写一个脚本,它将遍历100多个工作簿,这些工作簿都位于同一目录中。我想要做的是从每个工作簿中提取一个工作表并将它们复制到一个主工作簿。我要提取的工作表在目录中的所有100多个工作簿中具有完全相同的名称。

到目前为止,我有这个,但对VBA来说还是一个新手我不确定我是否在某个地方出错:

Sub AllFiles()
    Dim folderPath As String
    Dim filename As String
    Dim wb As Workbook

    folderPath = "C:\Resan\Bournemouth Parking\Survey Data\" 'change to suit

    If Right(folderPath, 1) <> "\" Then folderPath = folderPath + "\"

    filename = Dir(folderPath & "*.ped")
    Do While filename <> ""
      Application.ScreenUpdating = False
        Set wb = Workbooks.Open(folderPath & filename)


        'Call 'name of your other macro here
        'End Sub

1 个答案:

答案 0 :(得分:0)

你的问题很模糊,但是在用路径调用Dir()一次后,你需要在没有参数的情况下重复调用它,以便它继续在同一位置循环。

filename = Dir(folderPath & "*.ped")
Do While filename <> ""
    'Application.ScreenUpdating = False
    Set wb = Workbooks.Open(folderPath & filename)
    filename = Dir()
Loop

您也只需要关闭ScreenUpdating一次,但在测试和修复代码时我会注释掉这一行。