m0_65266895 2024-02-29 09:25 采纳率: 0%
浏览 2

VBA代码:计算多个excel文档中多个工作表的行数并输出在一个新的文档中

有一个比较复杂的VBA问题想请教一下
我现在有几百个文档,然后我把他们的存储路径粘贴在了一个新的表格最后一列
这些文档每一个有七个工作表,名字分别是report1, report2...是一些数据的记录
我想用存储路径那一列提取文档,统计每个文档每个工作表的行数,并且输出到新的文档里
新的文档第一行标题就是report1, report2...存储路径,然后把每个文档每个工作表的行数依次统计输出到每一行

img

请问有什么好的实现方法吗?

  • 写回答

3条回答 默认 最新

  • 关注

    m0_65266895 上午好☀️☀️☀️️
    本答案参考通义千问

    要使用VBA编写一个宏来实现这个需求,你可以按照以下步骤操作:

    1. 创建一个新的空白工作簿作为结果文件

      • 在Excel中新建一个工作簿,命名为"Result.xlsx"。
    2. 添加标题行

      • 在新工作簿的第一行,从A1到G1分别输入标题:"存储路径"、"report1"、"report2"、...直到"report7"。
    3. 编写VBA宏: 使用VBA编写一个宏来遍历指定的文件夹,统计每个工作表的行数。以下是一个基本的VBA代码示例,假设你的文件路径都在Sheet1A2:A区域:

    Sub CountRowsInMultipleWorksheets()
        Dim wb As Workbook
        Dim ws As Worksheet
        Dim filePath As String
        Dim fileIndex As Long
        Dim resultSheet As Worksheet
        Dim i As Long
        
        ' 设置结果工作表
        Set resultSheet = ThisWorkbook.Sheets("Result")
        
        ' 遍历文件路径
        For fileIndex = 2 To Range("A" & Rows.Count).End(xlUp).Row
            filePath = Sheets("Sheet1").Cells(fileIndex, 1)
            
            ' 打开每个文件
            Set wb = Workbooks.Open(filePath)
            
            ' 循环处理每个工作表
            For i = 1 To 7 ' 假设你有7个工作表
                Set ws = wb.Worksheets("report" & i)
                resultSheet.Cells(fileIndex, i + 1) = ws.Rows.Count ' 统计行数并写入对应列
            Next i
            
            ' 关闭文件
            wb.Close False ' False表示不保存更改
        Next fileIndex
    End Sub
    
    1. 运行宏

      • 点击VBA编辑器(按Alt + F11),或者通过"开发" -> "Visual Basic"打开。
      • 将上述代码粘贴到VBA编辑器中。
      • 双击宏名CountRowsInMultipleWorksheets运行它。
    2. 清理工作

      • 宏执行完成后,关闭不需要的文件和工作簿。

    请注意,这个代码假设文件夹中的每个Excel文件都有7个工作表,并且文件路径都在Sheet1的第一列。如果你的情况不同,可能需要调整代码以适应实际情况。

    评论

报告相同问题?

问题事件

  • 修改了问题 2月29日
  • 创建了问题 2月29日

悬赏问题

  • ¥20 macmin m 4连接iPad
  • ¥15 DBIF_REPO_SQL_ERROR
  • ¥15 根据历年月数据,用Stata预测未来六个月汇率
  • ¥15 DevEco studio开发工具 真机联调找不到手机设备
  • ¥15 请教前后端分离的问题
  • ¥100 冷钱包突然失效,急寻解决方案
  • ¥15 下载honeyd时报错 configure: error: you need to instal a more recent version of libdnet
  • ¥15 距离软磁铁一定距离的磁感应强度大小怎么求
  • ¥15 霍尔传感器hmc5883l的xyz轴输出和该点的磁感应强度大小的关系是什么
  • ¥15 vscode开发micropython,import模块出现异常