将Excel工作表复制到目录中的所有工作簿

时间:2016-04-14 14:29:28

标签: excel vba excel-vba

我对VBA并不太熟悉,所以希望有人可以帮助我。我已经四处搜索了一个VBA宏,我可以根据自己的需要进行编辑,但没有一个能够正常工作。

我试图将我的工作表复制到目录中的所有工作簿中。例如,我想要工作簿中的工作表"模板"使用"每日"的表/当前表到我在文件夹中的所有工作簿或我在代码中选择的文件夹中。通过这种方式,我可以轻松地将工作表复制到工作簿中,而无需手动操作数百次。

但是我不知道从哪里开始,我所看到的那个似乎对我来说效果不佳。

1 个答案:

答案 0 :(得分:1)

打开模板工作簿,将正确的文件夹位置分配给loopFolder,然后尝试:

Sub copyWorksheet()

    'this sets your template workbook/worksheet
    Dim copyWB As Workbook
    Dim copyWS As Worksheet

    Set copyWB = Workbooks("Template")
    Set copyWS = copyWB.Sheets("Daily")

    'this creates a collection of all filenames to be processed
    Dim loopFolder As String
    Dim fileNm As Variant
    Dim myFiles As New Collection

    '''don't forget the backslash before the final double-quote below
    loopFolder = "C:\Documents\desiredFolder\"
    fileNm = Dir(loopFolder & "*.xlsx")

    Do While fileNm <> ""
        myFiles.Add fileNm
        fileNm = Dir
    Loop

    'this loops through all filenames and copies your copyWS to the beginning
    Dim wb As Workbook

    For Each fileNm In myFiles
        Set wb = Workbooks.Open(fileName:=(loopFolder & fileNm))
        copyWS.Copy after:=wb.Sheets(1)
        wb.Save
        wb.Close
    Next

End Sub