在Excel VBA中,复制和粘贴多张工作表可以通过以下步骤完成:
Worksheets.Add.Name = "新工作表"
Worksheets("源工作表").Copy After:=Worksheets("新工作表")
Dim sourceSheet As Worksheet
Dim targetSheet As Worksheet
For Each sourceSheet In ThisWorkbook.Worksheets
If sourceSheet.Name Like "源工作表*" Then ' 根据实际情况修改匹配条件
Set targetSheet = Worksheets.Add(After:=Worksheets(Worksheets.Count))
targetSheet.Name = Replace(sourceSheet.Name, "源工作表", "新工作表")
sourceSheet.Copy After:=targetSheet
End If
Next sourceSheet
无法计算行数可能是因为某些工作表中存在空白行或错误的数据导致。要解决这个问题,可以使用以下代码获取每个工作表中有效数据的行数:
Dim ws As Worksheet
Dim lastRow As Long
For Each ws In ThisWorkbook.Worksheets
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
MsgBox "工作表 " & ws.Name & " 的有效数据行数为 " & lastRow
Next ws
以上代码中,ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
可以获取工作表中第一列的最后一个非空单元格所在的行数,即有效数据的行数。
希望以上内容对你有帮助。如需更详细了解Excel VBA的相关知识,可以参考腾讯云文档中的《Excel VBA开发指南》:
领取专属 10元无门槛券
手把手带您无忧上云