VBA提取汇总不同Excel工作表信息

工作中需要用到提取、汇总大量调查表单不同单元格的信息,由方便阅读但不方便汇总分析的调查表格式,整理汇总成方便透视、分析的规范格式(主要为一维表形式)。此工作如手工处理工作量大、容易出错,此时可以用VBA帮我们实现,示例代码如下:

Sub Extract()
Dim i, j, m, n
'取得工作表数量
n = Worksheets.Count
'取得汇总表第1行的最大列序
m = Sheets(1).Range("IV1").End(xlToLeft).Column
'i循环开始,i对应工作表序号
For i = 2 To n
'生成序号
Sheets(1).Cells(i + 1, 1).Value = i - 1
'取得工作表名
Sheets(1).Cells(i + 1, 2).Value = Sheets(i).Name
'j循环开始,j对应汇总表第一行指定的需引用单元格的地址字典
For j = 3 To m
'取得具体内容
Sheets(1).Cells(i + 1, j).Value = Sheets(i).Range(Sheets(1).Cells(1, j)).Value
Next j
Next i
End Sub

注意汇总表应建在sheet1。且在其第一行设置指定需提取单元格的地址,对应第2行的字段名称,如下图灰色字体部分:

Demo_VBA_20160720_2

给以上代码指定个按钮,点下【提取】,各个调查表单的信息就自动合并到【汇总】表了。

注意各个调查表单必须保持结构一致,否则会出错,实际应用时可使用保护工作表功能避免填写者修改表结构导致出错。

示例文件下载

尊重作者劳动,转载请注明出处:札记-Qianrong's Blog » VBA提取汇总不同Excel工作表信息

赞 (4)

相关推荐

    暂无内容!

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. 熊哥不错 学习一下回复