发票自动凑数.docx

上传人:b****4 文档编号:4677664 上传时间:2022-12-07 格式:DOCX 页数:13 大小:443.31KB
下载 相关 举报
发票自动凑数.docx_第1页
第1页 / 共13页
发票自动凑数.docx_第2页
第2页 / 共13页
发票自动凑数.docx_第3页
第3页 / 共13页
发票自动凑数.docx_第4页
第4页 / 共13页
发票自动凑数.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

发票自动凑数.docx

《发票自动凑数.docx》由会员分享,可在线阅读,更多相关《发票自动凑数.docx(13页珍藏版)》请在冰豆网上搜索。

发票自动凑数.docx

发票自动凑数

发票凑数

如果你是会计,是否曾遇到过需要在一大堆发票中凑出某一金额的发票数值来,通过人脑去凑数字真的是一件痛苦的事情,而且计算过程往往要耗费很长的时间,工作效率低下,这里提供一个快速凑发票金额的方法:

1、打开Excel表格,按下图所示填写内容,其中B列为现实中你所拥有的实际发票单张面额,需求值为你需要凑出的金额,这里用1000示例,误差为你允许的金额误差,这里用误差为零,即我们需要凑出1000元整的金额。

 

2、点击开发工具,点击VisualBasic按钮,打开VBA编辑窗口,

3、右键点击左侧工程栏点击插入,模块,新建模块1

 

4、点击模块1,将以下代码复制粘贴进右侧代码编辑栏

SubMP()

Sheet1.Range("E2")=""

DimcshAsDouble

Dimbrr()AsDouble

DimSSAsInteger

DimMMAsInteger

DimHHAsInteger

SS=Second(Time)

MM=Minute(Time)

HH=Hour(Time)

DimdiffAsDouble

diff=Sheet1.Cells(2,4)

DimzociAsDouble

DimciAsInteger

DimDeVaAsDouble

DimWeibaAsInteger

DeVa=Sheet1.Cells(2,3)

DimjarAsDouble

Dimarr()AsDouble

DimtotAsDouble

zoci=0

ci=0

jar=0

Weiba=Sheet1.Cells(3000,2).End(xlUp).Row

ReDimarr(2ToWeiba)

ReDimbrr(1ToWeiba)

DimMaVaAsDouble

DimSeLaVaAsDouble

brr

(1)=0

Fori=2ToWeiba

arr(i)=Sheet1.Cells(i,2)

brr(i)=arr(i)

Next

Fori=2ToWeiba-1

Forp=i+1ToWeiba

Ifbrr(i)>brr(p)Then

csh=brr(i)

brr(i)=brr(p)

brr(p)=csh

EndIf

Next

Next

Fori=2ToWeiba

Sheet1.Cells(i,2)=brr(Weiba+2-i)

Next

Fori=1ToWeiba

tot=tot+brr(i)

Next

Fori=2ToWeiba

MaVa=MaVa+brr(i)

Next

SeLaVa=MaVa-brr

(2)

If(DeVa>=brr

(2)AndDeVa<=SeLaVa)OrDeVa=MaVaThen

CallSB(DeVa,Weiba,2,jar,ci,zoci,diff,arr(),brr(),tot)

Else

MsgBox"金额超限啦!

请更改需求值或添加发票!

"

EndIf

Debug.Print"耗时:

"&Second(Time)-SS+(Minute(Time)-MM)*60+(Hour(Time)-HH)*3600&"秒"

EndSub

SubSB(DeVaAsDouble,WeibaAsInteger,xAsInteger,jarAsDouble,ciAsInteger,zociAsDouble,diffAsDouble,arr()AsDouble,brr()AsDouble,totAsDouble)

DimcaobAsDouble

StaticcaommAsInteger

Fori=xToWeiba

ci=ci+1

zoci=zoci+1

jar=jar+arr(i)

Sheet1.Cells(i,2).Interior.ColorIndex=42

'Debug.Printzoci&"层次="&ci&""&"i="&i&""&"上一个jar="&jar-Sheet1.Cells(i,2),"jar="&jar

Ifjar<=DeVa+diffAndjar>=DeVa-diffThen

Sheet1.Cells(2,5)=jar

ExitSub

EndIf

Ifjar

Ifjar<=DeVa+diffAndjar>=DeVa-diffThen

Sheet1.Cells(2,5)=jar

ExitFor

EndIf

Sheet1.Cells(i,2).Interior.ColorIndex=-4142

jar=jar-arr(i)

ci=ci-1

DoEvents

Next

Ifjar=0ThenMsgBox"现有发票无法凑出所需金额,请增加发票数或增加误差值!

"

EndSub

 

5、点击开发工具,点击插入,点击下拉栏中的按钮标签,在表格中点击插入按钮,并命名为科学计算,如下图所示。

 

6、右键单击科学计算按钮,点击指定宏。

7、在弹出的指定宏框中选中MP,并点击确定。

 

8、保存表格,命名为发票凑数,保存类型选择下拉栏里的Excel启用宏的工作薄(*.xlsm)。

 

9、再次打开发票凑数表格,点击启用内容

10、点击科学计算按钮,蓝色填充部分为参加进凑数计算得发票,按照颜色把实际发票挑出即为你所需要的凑数发票。

建议:

因为科学计算随发票张数的增多,计算量呈指数增加,如果你的电脑配置比较低,请保证参加的发票数量尽量不要多余50张,如果发票数量实在是很多,可以在表格录入单张面额时,两张甚至三张相加当作一张录入到表格里,以减轻计算量。

如果你的Excel表格没有开发工具这一栏,可以按照下图所示添加,点击文件,点击选项,在打开的选项框中,选择自定义功能区,在右侧主选项卡中勾选中开发工具,并点击确定即可。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1