我是怎么被Excel宏逼疯的
前天被领导临时抓壮丁,非要我搞个自动统计表格。想着之前看人用宏挺溜的,脑子一热就拍胸脯:“用宏分分钟搞定!”结果现实啪啪打脸。
第一步就想抄近道。我翻出两年前同事丢给我的旧宏文件,名字就叫“万能统计”,心想这不撞大运了?直接双击运行——好家伙,表格当场给我表演了个翻白眼,弹窗报错比领导骂人还密集。折腾半小时才整明白,这“万能”宏用的是旧版格式,现在新表格根本不吃这套,第一脚就踩坑里了。
硬着头皮自己录。我点开录制按钮,像逛菜市场似的选中A列求和,再复制到B列。录完一看代码差点厥过去:
- 它把鼠标移动轨迹全记下来了!
- 定位单元格用的是死坐标“Range("B2")”
- 复制动作生生拆成五段废话
手改代码改到眼冒金星。咬着牙手动删多余步骤,想把固定坐标改成动态查找。本来该写:
If 单元格值 = "总计" Then
结果我脑子短路写成: If 单元格值 = 总计 Then
好嘛VBA直接把“总计”当成变量名了!报错提示跟天书似的,我还以为键盘中毒了。是去茶水间灌了两杯冰咖啡才瞅见少打了双引号。
循环套循环连环炸。想着搞个高级功能,让宏自动处理不同分表。半夜一点热血上头写了双层循环:
- 外层循环工作表
- 内层循环每行数据
蹲坑时灵光一闪
第二天蹲厕所刷手机,看见维修师傅修电梯的视频,突然开窍!宏就跟修机器似的:
- 先关总闸:开头加上“关闭屏幕更新”代码,界面不闪了
- 备扳手:重要变量提前声明,像“Dim 总金额 As Long”
- 挂检修牌:核心步骤用“On Error”防崩
在保存环节又栽跟头。随手点了“另存为.xlsm”,结果发文件时漏了提醒。财务大姐点开就吼:“你这破表全是乱码!” 才想起她们电脑默认禁宏,纯文本看VBA代码可不就是天书么?害得我点头哈腰给人重存成普通格式。
血泪换来的保命口诀
折腾三天总结出四句真言:
- 旧宏当作鬼故事看
- 录制动作得手动扒层皮
- 循环必装刹车片
- 发车前大喊“这是宏文件!”
最搞笑的是完工后,当初给我旧宏的同事幽幽飘过:“那文件早报废了...不过看你改得挺欢就没说”。我微笑着把他微信备注改成了“坑王”,现在看见宏文件就跟看见前任似的——警惕中带着点手痒。
还没有评论,来说两句吧...