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

Vba 将Excel工作表复制到目录中的所有工作簿,vba,excel,Vba,Excel,我不太精通VBA,希望有人能帮助我。我已经到处搜索了一个VBA宏,我可以根据自己的需要编辑它,但没有一个有效 我正在尝试将我的工作表复制到目录中的所有工作簿中。例如,我希望将工作簿“模板”中的工作表和工作表/当前工作表“每日”一起放入文件夹中的所有工作簿中,或者在代码中选择哪个文件夹。这样我就可以轻松地将工作表复制到工作簿中,而无需手动执行数百次 但是,我不知道从何处开始,我所研究的那个似乎对我不太合适。打开模板工作簿,将正确的文件夹位置分配给loopFolder,然后尝试以下操作: Sub c

我不太精通VBA,希望有人能帮助我。我已经到处搜索了一个VBA宏,我可以根据自己的需要编辑它,但没有一个有效

我正在尝试将我的工作表复制到目录中的所有工作簿中。例如,我希望将工作簿“模板”中的工作表和工作表/当前工作表“每日”一起放入文件夹中的所有工作簿中,或者在代码中选择哪个文件夹。这样我就可以轻松地将工作表复制到工作簿中,而无需手动执行数百次


但是,我不知道从何处开始,我所研究的那个似乎对我不太合适。

打开模板工作簿,将正确的文件夹位置分配给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
子复制工作表()
'这将设置您的模板工作簿/工作表
将copyWB设置为工作簿
将copyWS设置为工作表
设置copyWB=工作簿(“模板”)
设置copyWS=copyWB.Sheets(“每日”)
'这将创建要处理的所有文件名的集合
将文件夹设置为字符串
Dim fileNm作为变体
将myFiles设置为新集合
''不要忘记下面最后一个双引号前的反斜杠
loopFolder=“C:\Documents\desiredFolder\”
fileNm=Dir(loopFolder&“*.xlsx”)
当文件名为“”时执行此操作
myFiles.addfilenm
fileNm=Dir
环
'这将遍历所有文件名,并将您的copyWS复制到开头
将wb设置为工作簿
对于myFiles中的每个fileNm
设置wb=Workbooks.Open(文件名:=(loopFolder&fileNm))
copyWS.Copy after:=工作表(1)
wb.保存
wb.关闭
下一个
端接头

您可能不喜欢这个建议,但我建议您利用这个机会学习python之类的服务器端语言。用python实现这一点非常简单。您应该避免使用VBA做这些类型的事情。如果您准备接受挑战,并且需要python脚本帮助,请告诉我。如果没有,我相信很快就会有人提出一个替代的VBA解决方案:)这种项目是一个很好的开始学习VBA代码的项目。我建议从网络上的众多Excel VBA教程中的一个开始(只需谷歌“Excel VBA”),如果遇到问题,请使用Microsoft的VBA帮助(这在大多数情况下都很好)和本网站了解详细信息。祝你好运@Eric-您能再解释一下如何使用Python实现这一点(以及为什么)?我也在学习Python(和VBA),我很好奇。与VBA相比,Python代码是否简单?还是更快,?和OP,加上关键词“VBA在目录中打开文件”、“VBA将工作表复制到外部工作簿”和“VBA避免使用
。选择
”,应该可以让您很快开始。嘿,蝙蝠侠,当然,没问题。我会选择python,因为它是一种高级语言(意味着它的语法很短,因此易于学习、调试和编码),它非常通用,能够用于多种用途(如通用编程、web应用程序开发和机器学习),最后,您可以利用大量文档和现有代码来创建自己的快速脚本。因此,如果你可以选择用VBA或python等有限语言学习,我会用python学习。我很乐意向你展示一个脚本,我必须完成类似的任务,但我不想在这个线程上发布它。请打开一个新问题并发送链接给我,我会在那里回答。