Excel VBA | 一键批量生成对账单(功能优化版本)

海运账单对账用到的excel里的VBA代码分享 alt+F11也可以调出VBA界面插入-模块。 阅读详情

提示:程序代码是根据实际工作的需求编写的,仅供参考学习使用。


一、代码优化问题说明

操作软件:Microsoft Office Excel 2021
使用功能:Visual Basic(开发工具--visualbasic编辑器--新建模块)

前期写过一篇《VBA实用基础程序 | 一键批量生成对账单》的文章,虽然可以帮助我一键批量生成对账单,大致上是能解决目前的问题,但是仍有一些后续问题有待解决。

由于一个客户我设计一个总的工作簿,每个月对账单对应的工作表都需要保存在同一个工作簿里。而目前代码所实现的只是将当月的对账单生成一个新的工作簿,而不会自动打开总的客户工作簿将当月的数据添加进去。

目前最笨的办法就是 :先打开一个客户总的工作簿,然后再打开当月生成的对账单,复制粘贴到总的工作簿里,保存关闭。

上百家客户如此笨拙地操作下来,几个小时又没了。

所以接下来要解决的问题就是:

在生成对账单的过程中,如果是老客户,会自动按照客户名称找到总的工作簿,打开并把当月的数据添加进去。

如果是新客户的话,则是在模板工作簿所在的路径下生成新的对账单。


二、代码更新

1. 编写一个能自动访问客户往期对账单总表,打开、修改数据并保存的代码。

先设置一个for循环来遍历对账单总表文件夹里的文件,通过if函数判断文件名称是否存在于文件夹里。

  • 如果存在的话,就表示该客户为老客户,然后对文件进行打开、修改、保存等操作。

  • 如果不存在时,就表示该客户为新客户,后续对其进行另存为新对账单的操作。

'代码更新:
'如果是已经存在的老客户,找到往期对账单,将最新一期的数据添加进去
'如果是新客户,则重新生成对账单
Dim fso As New FileSystemObject '因为定义了FileSystemObject,所以要先在vb窗口中,选择工具-引用-勾选Microsoft Scripting Runtime
Dim objFile, objFolder
Dim pathw '定义变量,用于存储对账单总表的地址
Dim wt
pathw = "C:\Users\ZWYB\Desktop\程序编写文件夹\对账单总表\" '注意结尾处有"\"
Set objFolder = fso.GetFolder(pathw)
    For Each objFile In objFolder.Files '用一个for循环不断读取文件夹里面的文件
        If InStr(objFile.Name, arr1(k, 1)) = 1 Then '判断文件夹里面的文件名称是否为当前arr1数组中的名称,如果是则执行下面操作
        Set wt = Workbooks.Open(objFile.Path) '打开文件
        fzmb.Copy after:=Worksheets(Worksheets.Count) '复制模板内容到当前arr1(k, 1)所在的工作簿中
        Worksheets(arr1(k, 1)).Name = Format(Date, "mm月") '利用format函数获取当前月份,如果需要获取完整日期:yyyy年mm月dd日
        'Worksheets(arr1(k, 1)).Name = “9月” '备选:灵活选择按何种方式命名工作表的名称
        ActiveWorkbook.Save '保存
        ActiveWorkbook.Close '关闭
        Application.DisplayAlerts = False  '屏蔽警告窗口
            fzmb.Delete  '删除复制的模板
        Application.DisplayAlerts = True  '打开警告窗口        
        End If
    Next

2. 新客户另存为独立对账单的代码。

在原来的代码中,已经有生成对账单的代码,在此基础上稍加修改即可。

用MsgBox函数 来提示是否有新客户的产生,当有新客户存在时,就会自动弹出提示选项框,通过选择“确定”或者“取消”来进行下一步操作。

  • 当点击“确定”按钮时,系统就会自动将新客户的对账单表生成独立的工作簿,并保存在当前路径下。

  • 当点击“取消”按钮时,不进行任何操作。

此外,所有新客户的工作表都保存完后,要在模板工作簿中将其删除,当工作表的名字不为“模板”和“榜单明细”时,执行删除操作。

'新客户对账单生成代码
Dim j%
Dim spath As String
answer = MsgBox("本月有新
Excel VBA | 一键批量生成对账单 根据对账单总表一键批量生成N家独立的客户对账单。 阅读详情

相关推荐

Excel VBA一键批量生成客户对账单:完整代码与避坑指南

在财务对账、采购结算等日常办公中,Excel是最常用的数据处理工具,但面对大量客户或供应商流水时,手动筛选、复制、粘贴并生成独立对账单文件往往耗时且易错。Excel VBA作为一种内置于Office的宏语言,能够在无需外部环境的情况下直接操控工作表、工作簿与单元格格式,是解决此类重复性批量任务的理想选择。其核心原理是通过脚本遍历数据源,利用字典对象按客户名称进行高效分组汇总,再结合预设模板自动填充明细、计算合计并另存为规范命名的独立文件,从而将原本数小时的手工操作压缩至几秒钟。这项技术不仅适用于月度对账、采

weixin_34198762的博客 533

【excel+vba】一表拆多表+不同收件人附带不同附件

快捷处理:拆分多个不同表 给不同人发送不同内容且附带附件

weixin_42779327的博客 2968

Excel VBA批量套打快递单:从数据到打印的自动化实战

在办公自动化和数据处理领域,批量套打技术是连接结构化数据与格式化输出的关键桥梁。其核心原理是通过程序自动将数据源(如Excel表格)中的信息,精准填充到预设的打印模板(如Word文档)的指定位置,并实现连续打印或文件生成。这项技术的核心价值在于将人工从繁琐、易错的重复劳动中解放出来,大幅提升数据处理与输出的准确性和效率。它广泛应用于电商发货、财务对账、票据打印等需要处理大量格式化文档的场景。本文聚焦于利用VBA这一内置于Office的原生编程语言,深入探讨如何构建一个健壮的批量套打系统,其中涉及数据流设计、

weixin_33824385的博客 224

Excel VBA批量套打实战:从数据到打印的自动化解决方案

在办公自动化和数据处理领域,批量打印是提升工作效率的关键环节。其核心原理在于通过程序化手段,将结构化数据自动填充到预设模板的指定位置,并驱动打印设备输出。这项技术的价值在于彻底告别手动复制粘贴的低效模式,实现零差错、格式统一的规模化输出,尤其适用于电商订单、物流面单、财务票据等高频单据处理场景。通过掌握像Excel VBA这样的工具,用户可以在熟悉的办公软件环境中,构建稳定可靠的自动化流程。本文聚焦于利用VBA实现批量套打,详细拆解了如何通过数据映射、循环控制和打印设置,将繁琐的打印任务转化为一键操作,为日

weixin_34005090的博客 325

VBA+Python实现Excel数据批量自动发送微信消息的完整方案

办公自动化是提升工作效率、减少重复劳动的关键技术,其核心原理是通过程序模拟人工操作,实现跨软件的数据流转与任务执行。在数据处理领域,VBA作为内置于Office的编程语言,能够高效地读写和操作Excel表格;而在应用控制层面,Python凭借丰富的第三方库(如pyautogui)可以稳定地模拟鼠标键盘操作,实现与桌面应用程序(如微信客户端)的交互。将两者结合,便能构建出强大的自动化工具,其技术价值在于将繁琐、易错的人工操作转化为精准、可复用的程序流程。这种方案特别适用于需要**个性化沟通**和**数据驱动*

weixin_31292729的博客 301

企业财务管理:高效对账单Excel模版下载指南

对账单表是一份记录特定时间段内个人或企业财务活动的详细报告。它包括了所有的收入与支出明细,确保每笔财务往来都被清晰地记录和分类。对账单表不仅仅是一个记录工具,它还提供了进行财务审查和决策制定的重要数据。在财务管理中,对账单表起到了不可或缺的作用。首先,它有助于跟踪和验证交易的准确性,确保没有遗漏或错误记录。其次,对账单表还能够作为财务报表的一部分,对公司的财务健康状况进行分析,为投资者、管理层和审计人员提供关键信息。

weixin_42360733的博客 1206

自动对账系统

可以有效完成两个excel数据核对,通过有效选择内容,实现自动对账。是财务、审计、资金等行业工作人员的好帮手。

VBA 自动对账小工具

免费下载。不知道怎么把下载积分搞为0,之前可以设置,现在优快云好像不能,或者说不好找。文章中有代码。欢迎大家使用。提出错误和建议。

系统根据销售出库明细生成客户对账单

系统根据销售出库明细生成客户对账单,便于熟悉EXCEL操作。

Excel自动批量生成条码(一键)

将Excel中的内容自动批量生成code128条码,压缩包中有使用说明及源代码。 本软件需使用python,仅需安装Python3.6以上版本及安装python依赖包。若连python依赖包都不会安装,请不要下载。

HttpClient vs OkHttpClient:哪个更适合你的Java项目?(附性能对比实测)

本文深度对比了Apache HttpClient与OkHttpClient在Java项目中的性能表现与适用场景。通过实际性能测试,OkHttp在连接复用、高并发吞吐量及内存占用方面表现更优,尤其适合现代微服务与Spring生态。HttpClient则凭借其高度可配置性,在需要精细控制HTTP协议细节的场景中更具优势。文章提供了清晰的选型指南,帮助开发者根据项目需求做出最佳决策。

onion的博客 508

告别GitHub!手把手教你用Gitblit在Windows 10上搭建私人局域网Git服务器(附SourceTree配置)

本文详细介绍了如何在Windows 10环境下使用Gitblit搭建私有Git服务器,实现局域网内高效代码协作。通过轻量级的Gitblit解决方案,开发者可以享受数据完全自主、离线可用性和局域网高速访问等优势。文章包含从环境准备、安装部署到SourceTree配置的全流程指南,特别适合金融、医疗等敏感行业团队使用。

weixin_30430169的博客 280

基于 parallels ubuntu 20.04 LTS (focal) 的ros+px4+gazebo 安装

基于 parallels ubuntu 20.04 LTS (focal) 的ros+px4+gazebo 安装。

weixin_40132006的博客 2239

汽车诊断之UDS入门-0x19 0x0A服务

0x19 0x0A解析

weixin_44842720的博客 3833

FAST-LIO2实战:从零搭建香港大学火星实验室SLAM框架(附官方数据集测试指南)

本文提供了一份详细的FAST-LIO2实战指南,帮助读者从零开始搭建香港大学火星实验室开源的这一高效激光惯性里程计框架。内容涵盖系统环境配置、依赖安装、源码编译、官方数据集测试以及参数调优,旨在让开发者快速上手并应用于机器人SLAM项目。

ppp33的博客 685

EMC基础知识总结

电磁干扰(Electromagnetic Interference),简称EMI,有和两种。传导干扰主要是电子设备产生的干扰信号通过导电介质或公共电源线互相产生干扰;辐射干扰是指电子设备产生的干扰信号通过空间耦合把干扰信号传给另一个电网络或电子设备。

学海无涯的专栏 1363

openharmony之启动恢复子系统详解

需求: 添加一个名为my_service的自定义服务步骤1: 创建服务配置],],"env": [步骤2: 添加到主配置],"jobs": ["cmds": [步骤3: 验证配置# ✅ 检查配置格式 jq . /system/etc/init/my_service.cfg # 🔄 重新加载配置 begetctl reload # 📊 验证服务状态 begetctl dump_service my_serviceOpenHarmony init进程的完整生命周期。🔄 三阶段启动模型⚙️ 配置体系。

m0_67505153的博客 597

AI摄影师:自动构图与修图算法设计

AI摄影师:自动构图与修图算法设计​ ,人工智能,计算机视觉,大模型,AI,AI 摄影师的核心能力体现在两方面:自动构图(通过算法优化画面元素布局)与智能修图(自动调整光影、色彩、细节)。例如,手机摄影中的 “AI 构图建议” 功能可实时框选最佳拍摄区域,修图软件中的 “一键增强” 能在 0.1 秒内完成专业级调色,这些都依赖于计算机视觉与深度学习的深度融合。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 16万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: Excel VBA | 自动添加序列号
MUYUN友逹
博客等级 码龄10年 77粉丝 27原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值