Excel VBA | 一键批量生成对账单

本文介绍了如何使用Excel VBA自动化批量生成对账单,从而提高工作效率。作者分享了从零基础学习VBA,调试代码,直至成功实现一键生成对账单的过程。文中还涉及到筛选、动态求和、自动生成序列号等关键代码段,并指出在不同Excel版本和数据结构中的注意事项。最后,提出了如何进一步改进代码以自动将新对账单添加到已有客户工作簿的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


一、问题描述

Excel VBA一键批量生成对账单

前不久,由于内人工作上的需要,开始接触并研究起Excel VBA的使用。

从EPR系统里导出的客户数据,一张表格里有几十家甚至上百家业务往来单位,要按照对应的单位名称生成单独的一张对账单表格。如果按照常规的复制粘贴来处理,一家单位处理下来少说也得五六分钟。不仅工作效率低,而且很浪费时间,严重影响其他工作的开展。

在网上搜索方法教程,无意中看到可以通过Excel VBA来批量生成对账单,只要把代码编写好,只需要一键便可以轻松完成几个小时的工作量。

从零接触到零基础,边解读代码边学习基础知识,渐渐熟悉每一行代码的含义和可以实现的功能,然后再根据实际工作去调试原视频的代码,并自行编写满足工作需求的代码,经过无数次的调试失败,修改代码,最终实现了通过VBA一键批量生成对账单。


对账单及模板表格

对账单表格模板表格
最终实现的效果

在这里插入图片描述在这里插入图片描述


二、代码程序

操作软件:Microsoft Office Excel 2021
使用功能:Visual Basic

Sub 一键生成对账单()

'屏幕刷新(ScreenUpdating),作用是使Excel停止刷新,提高代码的执行速度。
Application.ScreenUpdating = False
'屏蔽弹窗提示
Application.DisplayAlerts = False

'dqsh当前工作表 fzmb复制模板 mb模板 sxrg筛选
Dim dqsh As Worksheet, fzmb As Worksheet, mb As Worksheet, sxrg As Range
Dim wb As Workbook, y%, r%, x%, k%, i%, d    '申明wb为工作簿对象 %短整型 d字典对象
Dim arr, arr1   '作为存储区域的数组
t = Timer  '记录代码运行的起始时间

Set d = CreateObject("scripting.dictionary")   '创建字典对象
Set dqsh = ThisWorkbook.ActiveSheet    '把当前工作簿的活动工作表交给dqsh
Set mb = Sheets("模板")   '把模板这张工作表赋值给mb

dqsh.AutoFilterMode = False    '取消筛选,防止后面定位产生偏差

r = dqsh.Range("L65536").
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值