要合并一个文件夹下面的EXCEL表格,网上找了个宏,代码如下:Sub 合并当前目录下所有工作簿的全部工作表()Dim MyPath, MyName, AWbNameDim Wb As Workbook, WbN As StringDim G As LongDim Num As LongDim BOX As StringApplication.ScreenUpdating = FalseMyPath = ActiveWorkbook.PathMyName = Dir(MyPath & "\" & "*.xls")AWbName = ActiveWorkbook.NameNum = 0Do While MyName <> ""If MyName <> AWbName ThenSet Wb = Workbooks.Open(MyPath & "\" & MyName)Num = Num + 1With Workbooks(1).ActiveSheet.Cells(.Range("B65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)For G = 1 To Sheets.CountWb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)NextWbN = WbN & Chr(13) & Wb.NameWb.Close FalseEnd WithEnd IfMyName = DirLoopRange("B1").SelectApplication.ScreenUpdating = TrueMsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"End Sub运行这个的时候出错,提示是: 我估计问题是我的文件都是XLSX,然而以上公式是针对XLS的。求解决方法,谢谢
只差最后那一哆嗦。。。
MyName = Dir(MyPath & "\" & "*.xls")
问题出在这一句
改成以下试试:
MyName = Dir(MyPath & "\" & "*.xlsx")追问
我有试过这样改过,依然是同样的提示,很奇怪
追答折腾半天才找到原因
这段代码不能放在工作表、也不能插入模块
而是要粘贴到 Thisworkbook 中
PS:直接用MyName = Dir(MyPath & "\" & "*.xls") 这一句,能将.xls、.xlsx、.xlsm全都合并到一起