Excel 使用VBA将多张图纸中的行复制到另一张图纸中
我正试着把许多张纸合并成一张大的。这是宏的一部分,我在图纸上循环,并尝试将数据从每张图纸复制到大图纸上Excel 使用VBA将多张图纸中的行复制到另一张图纸中,excel,vba,Excel,Vba,我正试着把许多张纸合并成一张大的。这是宏的一部分,我在图纸上循环,并尝试将数据从每张图纸复制到大图纸上 For Each sh In ActiveWorkbook.Worksheets Dim lr As Long, rng As Range lr = sh.Cells(Rows.Count, 1).End(xlUp).Row Set rng = sh.Range("A2:A" & lr)
For Each sh In ActiveWorkbook.Worksheets
Dim lr As Long, rng As Range
lr = sh.Cells(Rows.Count, 1).End(xlUp).Row
Set rng = sh.Range("A2:A" & lr)
rng.EntireRow.Copy Bigsheet.Cells(Rows.Count, 1).End(xlUp)(2)
Next
但我不知道为什么我不能复制整行,这似乎只复制了一列请针对您的情况尝试我的解决方案
Sub MergeSheets()
Dim wb As Workbook
Dim ws_BigSheet As Worksheet, ws As Worksheet
Dim lng_LastRow As Long, lng_LastColumn As Long, lng_LastRowBigSheet As Long
Dim rng_WorkRange As Range
Set wb = ThisWorkbook
Set ws_BigSheet = wb.Worksheets("") ' big sheet name here
For Each ws In wb.Worksheets
If ws.Name <> ws_BigSheet.Name Then
lng_LastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
lng_LastColumn = ws.Cells(1, Columns.Count).End(xlToLeft).Column
lng_LastRowBigSheet = ws_BigSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
Set rng_WorkRange = ws.Range(ws.Cells(1, 1), ws.Cells(lng_LastRow, lng_LastColumn))
rng_WorkRange.Copy ws_BigSheet.Range("A" & lng_LastRowBigSheet)
End If ' If ws.Name <> ws_BigSheet.Name
Next ws
End Sub
Sub-MergeSheets()
将wb设置为工作簿
将ws_BigSheet作为工作表,ws作为工作表
标注lng_LastRow为长,lng_LastColumn为长,lng_LastRowBigSheet为长
变暗rng_工作范围作为范围
设置wb=ThisWorkbook
在此处设置ws_BigSheet=wb.Worksheets(“”)大工作表名称
对于wb.工作表中的每个ws
如果ws.Name ws_BigSheet.Name那么
lng_LastRow=ws.Cells(Rows.Count,1).End(xlUp).Row
lng_LastColumn=ws.Cells(1,Columns.Count).End(xlToLeft).Column
lng_LastRowBigSheet=ws_BigSheet.Cells(Rows.Count,1).End(xlUp).Row+1
设置rng_WorkRange=ws.Range(ws.Cells(1,1),ws.Cells(lng_LastRow,lng_LastColumn))
rng_WorkRange.Copy ws_BigSheet.Range(“A”和lng_LastRowBigSheet)
结束If'If ws.Name ws_BigSheet.Name
下一个ws
端接头
rng.EntireRow.Copy
应该复制整行。我知道,但它不/o您的工作簿很难,也不可能重现您的问题。