使用Excel宏代码合并的时候数据不全
发布网友
发布时间:2022-04-20 09:23
我来回答
共3个回答
热心网友
时间:2023-08-22 03:04
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
我将代码修改了以下,但是要将你合并的表格命名为 “合并”才可以运行。你测试以下看看结果。我自己测试成功。
热心网友
时间:2023-08-22 03:04
没有去重复的操作,是否有文件后缀不是.xlsx的?追问全部都是xlsx
追答不清楚了,排查吧。
热心网友
时间:2023-08-22 03:05
几处999999改成更大的就好了。追问改成1999999会提示错误1004
追答1048576
最大的行数,你的绎超过了。
改用其他软件吧。
使用Excel宏代码合并的时候数据不全
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...
一个excel表格中多个sheet工作表合并一个表,用宏代码,出现少行问题...
所以你复制过来以后,在使用X = Range("A65536").End(xlUp).Row + 1求最大行号的时候, 就造成了有可能A列的最大行号,并不是其它列的最大行号,所以造成有的数据在再次粘贴时被覆盖了。你把X = Range("A65536").End(xlUp).Row + 1换成X = UsedRange.Rows.Count + 1即可。
请问为什么我在excel2007下用宏把多个excel合并成一个excel表,却只能...
你打开的表格是.xls格式的工作薄,是由2003版本创建的,在2007版本中以兼容模式打开,所以还是原来的2003版本的65536行 要解决这个问题,你只需要将这个.xls的工作薄另存为.xlsx格式的工作薄,就可以有100多万行了
多个带公式的EXCEL表格合并为一个EXCEL 表格 。我用了一些网上下载的宏...
Application.ScreenUpdating = True MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"End Sub
EXCEL 用宏合并工作表的代码问题,初级问题,高手直接来拿分吧~_百度知...
你在取得源表的最后一行时没有指定工作表,于是取的都是sheet1的最后一行,所以会出现你说的这种情况。这样修改试试:Sub 合并()Dim i As Integer For i = 2 To Worksheets.Count Step 1 Worksheets(i).Range("1:" & Worksheets(i).[a65536].End(3).Row).Copy [a65536].End(3).Offset(...
为什么EXCEL中我用VBA合并同一工作簿的工作表,有的工作表合并不了
1. 将需合并的excel文件放在同一个文件中,并这个文件中新建一个excel文件 2. 打开新建的excel文件,按alt + f11建,打开宏,新建一个模组,将下面的代码拷贝进去,并保存。Sub Books2Sheets()'定义对话框变量 Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker)'新建一个...
Excel宏小白,请教,录制宏的时候,向下全部填充,为什么下次行数不一样的...
vb复制代码Dim lastRow As LonglastRow = Cells(Rows.Count, "A").End(xlUp).RowRange("A1:A" & lastRow).FillDown这样就会根据实际数据的最后一行进行填充,不受行数变化的限制。通过以上方法,你可以更好地录制和编辑Excel宏,确保其能够适应不同数据量和行数的情况。
运行多个excel文件合并成一个文件宏命令,其中一条代码显示“缺少=...
'Wb.Sheets(G).UsedRange.Copy .Cells(.Range("B65536").End(xlUp).Row + 1, 1)'是不是应该改成这样Wb.Sheets(G).UsedRange.Cells(.Range("B65536").End(xlUp).Row + 1, 1).Copy
为什么我用EXCEL做了一个合并单元格的宏执行不了?
Range("F3:H6").Select '这里的F3:H6你可以替换成任意你想要合并的单元格区域,或者把这行代码删除掉,你选择好要合并的区域后执行这个宏就OK了。With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = ...
VBA问题,想把多个EXCEL表合并成一个,使用下面代码运行,出现1004错误...
提示给你的是定义类型错误 个人推测是因为你没把工作表名改正确,sheets("summary").和sheets("pricing").是否能在表格中找到。这句代码本身没其他问题。