Vba 创建宏以在合并多个excel文件后输出和更新文件
我是VBA的新手。我正在使用Excel 2013完成此任务。我有几个Excel文件,我正在使用下面的宏组合成一个文件和多张图纸Vba 创建宏以在合并多个excel文件后输出和更新文件,vba,excel,Vba,Excel,我是VBA的新手。我正在使用Excel 2013完成此任务。我有几个Excel文件,我正在使用下面的宏组合成一个文件和多张图纸 Sub Merge2MultiSheets() Dim wbDst As Workbook Dim wbSrc As Workbook Dim wsSrc As Worksheet Dim MyPath As String Dim strFilename As String Application.DisplayAlerts = False Appli
Sub Merge2MultiSheets()
Dim wbDst As Workbook
Dim wbSrc As Workbook
Dim wsSrc As Worksheet
Dim MyPath As String
Dim strFilename As String
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
MyPath = "H:\Survey Research\ECAS\Reports\2015\Tracks"
Set wbDst = Workbooks.Add(xlWBATWorksheet)
strFilename = Dir(MyPath & "\*.xls", vbNormal)
If Len(strFilename) = 0 Then Exit Sub
Do Until strFilename = ""
Set wbSrc = Workbooks.Open(FileName:=MyPath & "\" & strFilename)
Set wsSrc = wbSrc.Worksheets(1)
wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count)
wbSrc.Close False
strFilename = Dir()
Loop
wbDst.Worksheets(1).Delete
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
我希望新文件中的每张图纸都采用其原始文件的名称。我试图编辑下面的代码并将其包含在上面的宏中,但虽然没有收到错误消息,但它没有完成任务
Do While fileName <> ""
Workbooks.Open (directory & fileName)
WrdArray() = Split(fileName, ".")
For Each sheet In Workbooks(fileName).Worksheets
Workbooks(fileName).ActiveSheet.Name = WrdArray(0)
total = Workbooks("import-sheets.xlsm").Worksheets.Count
Workbooks(fileName).Worksheets(sheet.Name).Copy after:=Workbooks("import- sheets.xlsm").Worksheets(total)
合并文件并命名图纸后,我希望输出新文件,并在原始文件中的数据发生更改时轻松更新它。
是否可以用一个宏实现所有这些?如果是这样的话,有谁能建议一种在Excel中编写宏的方法来自动命名工作表、输出文件并在原始文件中的数据发生更改时进行更新?对于第一部分,我认为您只需要添加一行:
Do Until strFilename = ""
Set wbSrc = Workbooks.Open(FileName:=MyPath & "\" & strFilename)
Set wsSrc = wbSrc.Worksheets(1)
'name the tab according to the file name
wsSrc.Name = Replace(strFilename,".xls","")
wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count)
wbSrc.Close False
strFilename = Dir()
Loop
关于在源文件更改时更新工作簿的最后一部分可能要复杂得多:最简单的方法是重新运行合并代码。如果这对您不起作用,那么您需要添加更多详细信息。到底是什么提供了详细信息!阻止你做你想做的事?如果您的现有代码存在问题,请更新您的问题以将其包括在内。如果您没有任何代码,请尝试编写一些代码,然后发回该代码以及可能收到的错误消息等的描述。是否缺少?没有问题也没有要求。。。只是我有。。。我想[做]。。。所以,嗯。。。没有人阻止你。想做就做如果你有一些具体的问题,请回来问。我很抱歉我的问题不清楚。我编辑了这个问题。谢谢你的建议@提姆