记录|EXCEL表格处理
- 2026-11-02 21:36:49
记录|EXCEL表格处理大量数据处理,假如能在繁杂的操作中找到规则,让机器/ai处理,既能大大提高效率,也是一桩乐趣。 今天以某区域数据按单工程统计为案例。 一、单工程/分项统计: 用数据透视表能很便捷地处理。 二、合并单元格的处理: 其中有大量的空白单元格需要合并,规则为:同列单元格从有数值的单元格开始,合并空白单元格。例如下图: 
1、有一位山区非常困难的群众是这么处理的: Ctrl+G 定位空值,输入公式”=上一单元格值"→合并单元格(合并相同的内容)。 ps:这个操作略费点功夫,而且假如有单工程/分项的值相同的话会合并到同一单元格。
2、还有一位山区困难的群众想到了个主意
,请AI帮忙写了一段VBS代码: 我也体验了,效果简直棒棒哒




,请AI帮忙写了一段VBS代码:Sub 向下合并空白单元格()Dim ws As WorksheetDim rng As RangeDim i As Long, startRow As Long, lastRow As Long, col As LongDim currentValue As Variant' 禁用屏幕更新和警告,提升运行速度Application.ScreenUpdating = FalseApplication.DisplayAlerts = FalseSet ws = ActiveSheetSet rng = Selection ' 获取用户选中的区域' 遍历选中区域的每一列For col = 1 To rng.Columns.CountstartRow =tValue = rng.Cells(startRow, col).ValuelastRow = rng.Rows.Count' 遍历当前列的每一行For i = 2 To lastRow' 如果当前单元格不为空,说明上一个合并区间结束If rng.Cells(i, col).Value <> "" Then' 合并从startRow到i-1的单元格If startRow < i - 1 Thenws.Range(rng.Cells(startRow, col), rng.Cells(i - 1, col)).MergeEnd IfstartRow = i ' 更新合并起始行currentValue = rng.Cells(i, col).ValueEnd IfNext i' 合并最后一个区间If startRow < lastRow Thenws.Range(rng.Cells(startRow, col), rng.Cells(lastRow, col)).MergeEnd IfNext col' 恢复屏幕更新和警告Application.ScreenUpdating = TrueApplication.DisplayAlerts = TrueMsgBox "合并完成!", vbInformationEnd Sub
打开你的Excel表格,选中需要处理的单元格区域;
按 Alt+F11 打开VBA编辑器;
右键点击左侧你的工作表名称 → 选择「插入」→「模块」;
将代码粘贴到右侧的代码编辑区;
按 F5 运行,或关闭VBA编辑器后按 Alt+F8 选择对应宏名执行。




已关注
关注
重播 分享 赞
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。