1. 每个月的重复工作
每个月导出请假、加班、出差记录,先把“已驳回”“已撤销”“通过后撤销”三种状态的行全删了,剩下正常通过的记录,再进行核算和处理。
听起来5分钟能搞定吧?
先筛选“状态”列,勾“已驳回”,删除。再取消筛选,筛“已撤销”,再删一批。再取消筛选,筛“通过后撤销”,再删。
删完三批,感觉毫无价值可言。
每次删完还得手动取消筛选才能进行下一步,中间稍微走个神,就忘了自己删到哪一批了。
等三种状态逐批删完,再取消筛选、导出、整理格式……
更让人崩溃的是——下个月,又来一遍。
2. 转机:我想起Excel里有个东西叫VBA
我开始想:Excel有没有办法一次性把三种状态同时删掉?
搜了一圈发现,有个叫VBA的东西能写代码让Excel自动干活。我不是程序员,但看了几个教程发现——原来不需要自己写,只需要把需求说清楚就行。
关键逻辑就三条:
第一,只操作我选中的那一列,不乱动旁边的数据。不管数据在哪一列,都能直接删 第二,从最后一行往上找,这样删行不会导致漏判 第三,分批删除,Excel一次处理太多会卡,分批次就稳得很
想明白这三点,我把需求整理了一下。
3. 写代码比我想象的顺利得多
打开VBA编辑器(Alt+F11),插入模块,照着逻辑把代码敲进去。
第一版就跑通了。
拿那张八千行的考勤表试了一下——点运行,Excel安静了大概十几秒,然后弹出一个提示框:
“搞定!已删除 347 行。”
我打开表一看,三种状态的行全没了,剩下的全是“已通过”的正常记录,整整齐齐。
那一刻我端着杯子愣了好一会儿。
过去三个月,每个月都要点N次鼠标的活,现在点一个按钮,十几秒就完事了。
4.你不用懂代码,把需求扔给AI就行
看到这里你可能在想——“我不会写VBA啊,敲代码那段我直接卡住了。”
别急,我后来发现一个更省事的办法:你根本不用自己写,把需求扔给AI就行。
我试过把需求换成“删除‘部门’列里包含‘实习生’的所有行”,AI十几秒就给我吐出了一段新代码,复制进模块直接跑通。
你只需要复制下面这段提示词,贴给AI(ChatGPT、Kimi、豆包都行),它就能给你一段能直接用的代码:
复制下面这段话,发给AI:
——
我要写一段Excel的VBA代码,功能是:
我手动选中某一列(比如“状态”列) 代码自动扫描这一列,找到包含以下关键词的行:【在这里填你要删的词,比如:已驳回、已撤销、通过后撤销】 找到后删除整行 要求从下往上删,避免行号错位 分批删除,防止数据量大时Excel卡死 删完后弹窗提示一共删了多少行 如果我没选中列或选多了,弹出提醒让我重新选 请直接给我完整的VBA代码,不要多余的解释,代码里中文备注写清楚。
拿到代码之后,三步搞定:
按 Alt+F11打开VBA编辑器 → 菜单栏点 “插入” → “模块”把AI生成的代码完整粘贴进去,关掉编辑器 回到Excel,点一下状态列的列标 → 按 Alt+F8→ 选那个宏 → 点“运行”
等它弹个提示框告诉你删了多少行,完事。
两个关键提醒:
如果AI第一次生成的代码报错,把报错信息复制粘贴回对话框,告诉AI“报了这个错,帮我改一下”,它通常会自己修好。不用你懂VBA,你只需要会复制粘贴和描述需求。 运行前一定另存一份副本——VBA删除不经过回收站,删了就真没了。花五秒钟存个备份,能省一整天的心。
5. 这件事让我想明白了一个道理
说实话,用AI生成代码本身没什么了不起。
真正让我觉得值的不是那15秒,而是——和鼠标手say byebye。
这个变化让我养成一个习惯:任何一件事,只要我确认它会重复发生第三次,我就停下来想——能不能让它自动跑。
省下来的不是那几十秒,是每个月那几个小时的低质量劳动时间。
这些时间,我才舍得留给真正需要动脑子的地方
我们的时间,应该花在判断上,不是花在重复上。
夜雨聆风