在Excel中用宏命令制作打印表单

上传人:飞*** 文档编号:27044617 上传时间:2018-01-05 格式:DOC 页数:6 大小:33.03KB
返回 下载 相关 举报
在Excel中用宏命令制作打印表单_第1页
第1页 / 共6页
在Excel中用宏命令制作打印表单_第2页
第2页 / 共6页
在Excel中用宏命令制作打印表单_第3页
第3页 / 共6页
在Excel中用宏命令制作打印表单_第4页
第4页 / 共6页
在Excel中用宏命令制作打印表单_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《在Excel中用宏命令制作打印表单》由会员分享,可在线阅读,更多相关《在Excel中用宏命令制作打印表单(6页珍藏版)》请在金锄头文库上搜索。

1、在 Excel中用宏命令制作打印表单在Excel中用宏命令制作打印表单2010-07-09 10:18这是一张通过Office办公软件Excel电子表格宏制作的单据打印表,其特点是:操作简单只用鼠标就可完成打印全过程;商品单价表可由厂家提供(或预先做好),对已做过选择的内容可进行标记;销售单表可进行快速添加、清除和修改;单据可选择性的保存。本表想不到还很实用,只要在商品单价表中双击就可以把数据填入到销售表中,如果把它做一些小的改动就可用在其它的单据打印上。现在把制作步骤写下来,让朋友对它做进一步的改进。1、第一步:首先新建一个Excel电子表文件,在新建的文件中建立二张名字为商品单价和销售单的

2、表。在商品单价表中是用来存放厂家提供的商品单价数据,只要将厂家的商品单价输入好即可,厂家的商品未调价就不需做修改(如图1)。2、第二步:在销售单表中按图2输入有关数据,部分单元格公式输入如下。在C1至C3单元格中分别输入=IF(K15=,K15),=IF(L1=,L1)&IF(K1=,K1),IF(K2=,K2)在B5至B15单元格中分别输入=IF(K5=,K5),=IF(K15=,K15)在C5至C15单元格中分别输入=IF(B5=,VLOOKUP(B5,spdj,2,FALSE),=IF(B15=,VLOOKUP(B15,spdj,2,FALSE)在I5至I15单元格中分别输入=F5*G5

3、,=F6*G6=F14*G14和=SUM(I5:I14)在单元格G2 G3中分别输入=TODAY(),=IF(K3=,K3)在单元格C15中输入=合计金额大写):&TEXT(INT(ABS(I15),dbnum2g/通用格式)&元&TEXT(INT(ABS(I15*10)-INT(ABS(I15)*10,dbnum2g/通用格式)&角&TEXT(INT(ABS(I15*100)-INT(ABS(I15)*10)*10,dbnum2g/通用格式)&分整在单元格C16 C17 G17中分别输入=IF(K4=,K4),=IF(K17=,K17),=IF(K16=,K16)其余的输入就不用我介绍了。而

4、后创建四个按钮,点击视图-工具栏-控件工具箱-设计模式-命令按钮创建完再点退出命令按钮。做一下打印页面设置,锁定该表(如图2),这样这张表就做好了。3、第三步:编写VB代码。点击工具菜单-宏-Visual Basic编辑器,在Visual Basic编辑器中建立二个窗体为UserForm1,UserForm2,添加控件并设置好属性(如图4、图5)。4、第四步:双击工程列表中的Sheet1(商品单价)如图3,在弹出窗口中编写如下代吗:Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range,Cancel As Boolean)Se

5、t My1=Sheets(商品单价)Set My2=Sheets(销售单)On Error GoTo mmmm If Selection.Font.ColorIndex=15 Or My1.Cells(Target.Row,8)Or Target.Row=1 Or Target.Row=2 Then过滤已选过的数据行或行头Range(I&Target.Row).Select Exit Sub End If If My1.Cells(Target.Row,1)=Then Exit Sub过滤空行For Q=5 To 14 If My2.Cells(Q,11)=Then找销售单内的空行My2.Ce

6、lls(Q,11)=My1.Cells(Target.Row,1)填写数据My2.Cells(Q,12)=Target.Row My1.Range(A&Target.Row&:G&Target.Row).Font.ColorIndex=15在商品单价表中对已选过的行作标记My1.Cells(Target.Row,8)=作标记也可用此代码My1.Range(I&Target.Row).Value=Exit For End If Next QRange(I&Target.Row).Select If Q=14 Then My2.Select填满10行跳转到销售单表Exit Sub mmmm:Msg

7、Box出错!End Sub 5、第五步:双击列表中的Sheet12(销售单,在弹出窗口中编写如下代吗:新增表单Private Sub CommandButton1_Click()If MsgBox(确实要新增表单吗?,vbYesNo,新增表单)=vbYes Then Set My1=Sheets(商品单价)Set My2=Sheets(销售单)For E=5 To 14 Sn=My2.Cells(E,12)If SnThen检测数据是否已被清除My1.Range(A&Sn&:G&Sn).Font.ColorIndex=0清除商品单价表的某行标记My1.Range(H&Sn).Value=清除标

8、记End If Next EMy2.Copy after:=Sheets(1)复制表单ActiveSheet.Shapes.Range(Array(CommandButton3,CommandButton1,CommandButton2,CommandButton4).Select Selection.Delete清除形状按钮My2.Select My2.Range(G5:G14,K5:L14).Value=清除销售单表全部数据My2.Cells(1,11)=My2.Cells(1,11)+1增加销售单编号Range(A1).Select End If End Sub清除内容Private S

9、ub CommandButton2_Click()X=Selection.Address所选区域的单元格绝对地址For I=1 To Len(X)If Mid(X,I,1)=:Then A1=A2:A2=If Val(Mid(X,I,1)0 Or Mid(X,I,1)=0Then A2=A2&Mid(X,I,1)过滤字符只留数字Next IIf A1=4 Or A1=15 Or A2=4 Or A2=15 Then MsgBox你选择的区域不正确!&Chr(13)&Chr(13)&请正确选择清除区域!,0,提示Else If MsgBox(你选择的区域为:第&A1&-&A2&行&Chr(13)

10、&Chr(13)&确实要清除区域中的数据吗?,vbYesNo,清除)=vbYes Then Set My1=Sheets(商品单价)Set My2=Sheets(销售单)For E=A1 To A2 Sn=My2.Cells(E,12)If SnThen检测数据是否已被清除My1.Range(A&Sn&:G&Sn).Font.ColorIndex=0清除商品单价表的某行标记My1.Range(H&Sn).Value=清除商品单价表的某行标记My2.Range(G&E&,K&E&:L&E).Value=清除销售表的某行数据End If Next EEnd If Range(A1).Select End If End Sub表单设置Private Sub CommandButton3_Click()UserForm1.Show End Sub使用说明Private Sub CommandButton4_Click()UserForm2.Show End Sub到这为止就全部做完了,最后注意要记得保存。使用者只要在商品单价表中双击鼠标,就会将数据自动填入到销售单表中,然后表格中输入数量即可,非常方便。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号