前几天接到网运通知,要求将去年所有新增用户收入按下表格所示汇总,将明细表附在成本回收核算栏中。由于通过计费终端前台统计出来的用户数只能按月逐一统计,汇总后的表格如最上层表格所示(总的有5000多行),如此大的工作量,用鼠标逐一复制再transpose速度太慢,估计至少需要4~5个小时。询问其它经营部,都没找到最简洁的办法进行汇总。如此岂不荒废了这台电脑?以前知道有Excel VBA这么一个概念,知道可以通过VB脚本来进行编程。但VB脚本与C++、Foxpro还是有一定的差距,如何最快速找到自己所需的VB程序概念? Google!这样的工具不用岂不浪费,大致了解了VB子程序语法结构后,重点从网上临时学习了对Excel单元格select方法,经多次调试,终于成功的实现了对话单的自动汇总。以下为宏的实现: Sub main() Dim i, k, j, m, irow As Integer irow = ActiveSheet.Range("A65535").End(xlUp).Row k = Worksheets(1).Cells(1, 1) m = 1 j = 1 For i = 1 To irow Worksheets(2).Cells(m, 1) = Worksheets(1).Cells(j, 1) Worksheets(2).Cells(m, 2) = Worksheets(1).Cells(i, 2) Worksheets(2).Cells(m, 3) = Worksheets(1).Cells(i, 3) Worksheets(2).Cells(m, (3 + k)) = Worksheets(1).Cells(i, 4) k = k + 1 If Worksheets(1).Cells(i, 2) <> Worksheets(1).Cells(i + 1, 2) Then m = m + 1 k = Worksheets(1).Cells(i + 1, 1) j = i + 1 End If Next i End Sub 其实这个宏还有很多地方可以优化,但于我而言,能解决问题就行,毕竟我不需要对VB有多精通,实用才是硬道理! ……