我试图将工作表合并到一个工作簿中。我有一本超过20张的工作簿。我正在寻找创建一个宏将页面合并在一起(取决于他们的名称)到一个单独的工作簿。
到目前为止,这是我所拥有的代码:它将工作簿中的所有工作表合并在一起,但我想按名称合并它们。
Sub mergedata()
Sheets(1).Activate
lastrow = ActiveSheet.UsedRange.Rows.Count
For Each Sheet In Sheets
If Sheet.Index <> 1 Then
RowCount = Sheet.UsedRange.Rows.Count
Sheet.UsedRange.Copy Destination:=Sheets(1).Cells(lastrow + 1, 1)
lastrow = lastrow + RowCount
Sheet.UsedRange.Clear
End If
Next Sheet
End Sub
答案 0 :(得分:0)
您需要在循环中添加一个额外的if语句。这可能是这样的:
'.....
For Each Sheet In Sheets
If Sheet.Index <> 1 Then
If Sheet.Name = "NameOfSheet" or Sheet.Name = "NameIsCaseSensitive" then
RowCount = Sheet.UsedRange.Rows.Count
Sheet.UsedRange.Copy Destination:=Sheets(1).Cells(lastrow + 1, 1)
lastrow = lastrow + RowCount
Sheet.UsedRange.Clear
end if
End If
Next Sheet
'....
答案 1 :(得分:0)
我的情况你需要相同但是水平(就像我做的那样)(没有名字升级)
Sub mergedata_horizontal()
Sheets(1).Activate
lastcol = ActiveSheet.UsedRange.Columns.Count
For Each Sheet In Sheets
If Sheet.Index <> 1 Then
ColCount = Sheet.UsedRange.Columns.Count
Sheet.UsedRange.Copy Destination:=Sheets(1).Cells(1, lastcol + 1)
lastcol = lastcol + ColCount
Sheet.UsedRange.Clear
End If
Next Sheet
End Sub