首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel VBA复制和粘贴多张工作表,无法计算行数

在Excel VBA中,复制和粘贴多张工作表可以通过以下步骤完成:

  1. 首先,可以使用Worksheets对象的Add方法创建新的工作表。例如,可以使用以下代码在活动工作簿中创建一个名为"新工作表"的工作表:
代码语言:txt
复制
Worksheets.Add.Name = "新工作表"
  1. 接下来,可以使用Worksheets对象的Copy方法将源工作表复制到新创建的工作表上。例如,以下代码将名为"源工作表"的工作表复制到名为"新工作表"的工作表上:
代码语言:txt
复制
Worksheets("源工作表").Copy After:=Worksheets("新工作表")
  1. 如果要复制多张工作表,可以将步骤2的代码放在循环中,并在每次迭代时更改源工作表的名称和目标工作表的名称。例如,以下代码复制名为"源工作表1"和"源工作表2"的工作表到名为"新工作表1"和"新工作表2"的工作表上:
代码语言:txt
复制
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

无法计算行数可能是因为某些工作表中存在空白行或错误的数据导致。要解决这个问题,可以使用以下代码获取每个工作表中有效数据的行数:

代码语言:txt
复制
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开发指南》:

Excel VBA开发指南

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券