夜雨聆风学习资料网

ARTICLE · 1115723

Excel VBA 双向台账:按A列匹配,有则更新、无则新增(数组高速版)

Excel VBA 双向台账:按A列匹配,有则更新、无则新增(数组高速版)
功能介绍
✅ 当前工作簿(录入表)作为数据源
✅ 目标:写入另外一个指定工作簿(台账文件)
✅ 匹配规则:A列内容作为唯一主键
✅ 逻辑:台账A列找到相同内容 → 整行更新覆盖;找不到 → 末尾新增一行
✅ 数组处理,大数据不卡顿,不使用Copy粘贴,速度快
✅ 自动打开/关闭台账文件,后台静默保存
✅ 增加弹窗提示,执行完成告知:更新多少条、新增多少条
✅ 防报错:文件不存在、空数据、主键为空的容错处理
使用场景:日常表单录入、客户台账、物料清单、日报汇总,本地填一张表,自动同步到总台账,不用手动复制粘贴、查找替换。
 ✨VBA完整代码
📝 关键修改说明(公众号重点标注)
1.  Set wsSource = wbSource.ActiveSheet 
如果固定用【录入表】,改成  Set wsSource = wbSource.Sheets("录入表") 
2.  Set wsTarget = wbTarget.Sheets("台账") 
⚠️ 必须改成你台账文件里的工作表名字
3. 表头规则:两个表格都默认第1行表头,数据从第2行开始
4. 匹配主键:A列作为唯一编号(物料号/客户编号/单号)
5.  dict.CompareMode = vbTextCompare 
- vbTextCompare: ABC001  和  abc001  视为相同
- vbBinaryCompare:大小写不一样,判定两条不同数据
✨图片示例
1.录入表 示例数据(A1:D4)
2.总台账【更新前】示例数据(A1:D3)
3.✅ 运行VBA之后,总台账更新结果
可以根据自己的需要进行修改工作簿名称
条件列。方便数据更新,解决工作中数据实时更新问题。
⚠️专业制作VBA发开,需要可关注私信留言,欢迎交流。数据分析关注我不迷路。
✨ VBA一键按条件自动提取数据(文员、生产统计专用)
VBA一键对比两个Excel文件|自动识别相同-差异数据,不同单元格填充颜色Excel VBA一键按条件追加写入指定工作簿(自动新增行,不覆盖原有数据)
一键导入外部Excel!VBA文件选择器,自动提取数据到当前表

相关学习资料