1、需求:
有1个工作簿,多个工作表,格式一致,按某列作为关键字(具有唯一性),汇总数据,以工作表名称作为汇总后的新列名称,并生成1列合计。
2、实际例子:
有1个记录员工工资的工作簿,姓名是唯一的,需要汇总每一个人当年的工资数据,举例3个月的数据:
3个月中,人员也会有变动。
需要的结果表:
3、代码实现
简单分析:
读取数据
根据姓名确定数据要存放的行号,并累加到合计列
输出
个人碰到的很多VBA实际问题基本都可以按这3步完成,所以我习惯首先把代码的框架搭好,而且我基本固定按这个模式了:
'函数返回值Enum RetCode ErrRT = -1 SuccRT = 1End Enum'标记一些位置信息Enum Pos RowStart = 2 KeyCol ColsEnd EnumType DataStruct Src() As Variant Rows As Long Cols As LongEnd TypeSub vba_main() Dim d As DataStruct If RetCode.ErrRT = ReadSrc(d) Then Exit Sub