一个excel表格中多个sheet工作表合并一个表,用宏代码,出现少行问题?

、Sub 合并当前工作簿下的所有工作表()

Application.ScreenUpdating = False

For j = 1 To Sheets.Count

If Sheets(j).Name <> ActiveSheet.Name Then

X = Range("A65536").End(xlUp).Row + 1

Sheets(j).UsedRange.Copy Cells(X, 1)

End If

Next

Range("B1").Select

Application.ScreenUpdating = True

MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"

End Sub

出现这个问题,很可能是某个表中的最后几行的数据中,A列有空单元格,但是其它列有非空单元格。
所以你复制过来以后,在使用X = Range("A65536").End(xlUp).Row + 1求最大行号的时候, 就造成了有可能A列的最大行号,并不是其它列的最大行号,所以造成有的数据在再次粘贴时被覆盖了。
你把X = Range("A65536").End(xlUp).Row + 1换成X = UsedRange.Rows.Count + 1即可。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-09-05

Excel怎样快速把多表数据汇总于总表

相似回答