




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、发票凑数如果你是会计,是否曾遇到过需要在一大堆发票中凑出某一金额的发票数值来,通过人脑去凑数字真的是一件痛苦的事情,而且计算过程往往要耗费很长的时间,工作效率低下,这里提供一个快速凑发票金额的方法:1、 打开Excel表格,按下图所示填写内容,其中B列为现实中你所拥有的实际发票单张面额,需求值为你需要凑出的金额,这里用1000示例,误差为你允许的金额误差,这里用误差为零,即我们需要凑出1000元整的金额。2、 点击开发工具,点击Visual Basic按钮,打开VBA编辑窗口,3、 右键点击左侧工程栏点击插入,模块,新建模块1 4、 点击模块1,将以下代码复制粘贴进右侧代码编辑栏Sub MP(
2、) Sheet1.Range(E2) = Dim csh As Double Dim brr() As Double Dim SS As Integer Dim MM As Integer Dim HH As Integer SS = Second(Time) MM = Minute(Time) HH = Hour(Time) Dim diff As Double diff = Sheet1.Cells(2, 4) Dim zoci As Double Dim ci As Integer Dim DeVa As Double Dim Weiba As Integer DeVa = Sheet1
3、.Cells(2, 3) Dim jar As Double Dim arr() As Double Dim tot As Double zoci = 0 ci = 0 jar = 0 Weiba = Sheet1.Cells(3000, 2).End(xlUp).Row ReDim arr(2 To Weiba) ReDim brr(1 To Weiba) Dim MaVa As Double Dim SeLaVa As Double brr(1) = 0 For i = 2 To Weiba arr(i) = Sheet1.Cells(i, 2) brr(i) = arr(i) Next
4、For i = 2 To Weiba - 1 For p = i + 1 To Weiba If brr(i) brr(p) Then csh = brr(i) brr(i) = brr(p) brr(p) = csh End If Next Next For i = 2 To Weiba Sheet1.Cells(i, 2) = brr(Weiba + 2 - i) Next For i = 1 To Weiba tot = tot + brr(i) Next For i = 2 To Weiba MaVa = MaVa + brr(i) Next SeLaVa = MaVa - brr(2
5、) If (DeVa = brr(2) And DeVa = SeLaVa) Or DeVa = MaVa Then Call SB(DeVa, Weiba, 2, jar, ci, zoci, diff, arr(), brr(), tot) Else MsgBox 金额超限啦!请更改需求值或添加发票! End If Debug.Print 耗时: & Second(Time) - SS + (Minute(Time) - MM) * 60 + (Hour(Time) - HH) * 3600 & 秒End SubSub SB(DeVa As Double, Weiba As Integer
6、, x As Integer, jar As Double, ci As Integer, zoci As Double, diff As Double, arr() As Double, brr() As Double, tot As Double) Dim caob As Double Static caomm As Integer For i = x To Weiba ci = ci + 1 zoci = zoci + 1 jar = jar + arr(i) Sheet1.Cells(i, 2).Interior.ColorIndex = 42 Debug.Print zoci & 层
7、次= & ci & & i= & i & & 上一个jar= & jar - Sheet1.Cells(i, 2), jar= & jar If jar = DeVa - diff Then Sheet1.Cells(2, 5) = jar Exit Sub End If If jar DeVa + diff Then Call SB(DeVa, Weiba, i + 1, jar, ci, zoci, diff, arr(), brr(), tot) If jar = DeVa - diff Then Sheet1.Cells(2, 5) = jar Exit For End If Shee
8、t1.Cells(i, 2).Interior.ColorIndex = -4142 jar = jar - arr(i) ci = ci - 1 DoEvents Next If jar = 0 Then MsgBox 现有发票无法凑出所需金额,请增加发票数或增加误差值!End Sub5、 点击开发工具,点击插入,点击下拉栏中的按钮标签,在表格中点击插入按钮,并命名为科学计算,如下图所示。6、 右键单击科学计算按钮,点击指定宏。7、 在弹出的指定宏框中选中MP,并点击确定。8、 保存表格,命名为发票凑数,保存类型选择下拉栏里的Excel启用宏的工作薄(*.xlsm)。9、 再次打开发票凑数表格,点击启用内容10、 点击科学计算按钮,蓝色填充部分为参加进凑数计算得发票,按照颜色把实际发票挑出即为你所需要的凑数发票。建议:因为科学计算随发票张数的增多,计算量呈指数增加,如果你的电脑配置比较低,请保证参加的发票数量尽量不要多余50张,如果发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外科综合考试题及答案
- 市政公司面试题及答案
- 水质监测考试题及答案
- 汽车销售商年度工作总结
- 邮运驾驶员考试试题及答案
- 江西省赣州市会昌中学、宁师中学2026届化学高一上期末调研模拟试题含解析
- 暑假实习总结
- 2026届宁夏回族自治区银川市兴庆区银川一中化学高一第一学期期中教学质量检测模拟试题含解析
- 21.3实际问题与一元二次方程(第1课时)(教学课件)数学人教版九年级上册
- 保安行业相关知识培训课件
- 2025年陕西西安工业投资集团有限公司招聘笔试参考题库含答案解析
- 浙江省园林绿化工程施工质量验收规范
- 2023-2028全球及中国热保护器行业市场调研及投资前景分析报告3篇
- 钢楼梯计算手册
- 婚前医学检查证明(含存根)
- GB 24542-2009坠落防护带刚性导轨的自锁器
- 特种设备教育培训考试题
- 检验科医师(技师)晋升高级职称晋升专题报告病例分析汇编三篇
- 工程师站及电子间管理规定
- 最新山东地图含市县地图矢量分层可编辑地图PPT模板
- 浙江鹏友化工有限公司
评论
0/150
提交评论