首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

使用Excel宏代码合并的时候数据不全

发布网友

我来回答

3个回答

热心网友

Sub 合并当前目录下所有工作簿的全部工作表()
Dim MyPath, MyName, AWbName, Wbn As String
Dim Wb As Workbook, Num%, G%, a%
Application.ScreenUpdating = False
MyPath = ActiveWorkbook.Path
MyName = Dir(MyPath & "\" & "*.xlsx")
Do While MyName <> "合并.xlsx"
If MyName <> AWbName Then
Set Wb = Workbooks.Open(MyPath & "\" & MyName)
Num = Num + 1
With Workbooks(1).Sheets(1) 'Workbooks(1).ActiveSheet
a = Application.CountA(.[a:a]) + 1
.Cells(a, 1) = Left(MyName, Len(MyName) - 4)
For G = 1 To Wb.Sheets.Count
a = Application.CountA(.[a:a]) + 1
Wb.Sheets(G).UsedRange.Copy .Cells(a + 1, 1)
Next
Wbn = Wbn & Chr(13) & Wb.Name
Wb.Close
End With
End If
MyName = Dir
Loop
Application.ScreenUpdating = True
MsgBox "共合并了" & Num & "个工作薄下的全部工作表。如下:" & Chr(13) & Wbn, vbInformation, "提示"
End Sub

我将代码修改了以下,但是要将你合并的表格命名为 “合并”才可以运行。你测试以下看看结果。我自己测试成功。

热心网友

没有去重复的操作,是否有文件后缀不是.xlsx的?追问全部都是xlsx

追答不清楚了,排查吧。

热心网友

几处999999改成更大的就好了。追问改成1999999会提示错误1004

追答1048576
最大的行数,你的绎超过了。
改用其他软件吧。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com