在Excel中用宏命令制作打印表单_第1页
在Excel中用宏命令制作打印表单_第2页
在Excel中用宏命令制作打印表单_第3页
在Excel中用宏命令制作打印表单_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、。1、第一步:首先新建一个Excel电子表文件,在新建的文件中建立二张名字为"商品单价"和"销售单"的表。在"商品单价"表中是用来存放厂家提供的商品单价数据,只要将厂家的商品单价输入好即可,厂家的商品未调价就不需做修改(如图1)。2、第二步:在"销售单"表中按图2输入有关数据,部分单元格公式输入如下。在C1至C3单元格中分别输入=IF(K15="","",K15),=IF(L1="","",L1)&IF(K1="&qu

3、ot;,"",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,

4、=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(A

5、BS(I15)*10)*10,"dbnum2g/通用格式")&"分整"在单元格C16 C17 G17中分别输入=IF(K4="","",K4),=IF(K17="","",K17),=IF(K16="","",K16)其余的输入就不用我介绍了。而后创建四个按钮,点击"视图"-"工具栏"-"控件工具箱"-"设计模式"-"命令按钮"创

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

7、 Range,Cancel As Boolean)Set 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.Cell

8、s(Target.Row,1)=""Then Exit Sub'过滤空行For Q=5 To 14 If My2.Cells(Q,11)=""Then'找销售单内的空行My2.Cells(Q,11)=My1.Cells(Target.Row,1)'填写数据My2.Cells(Q,12)=Target.Row My1.Range("A"&Target.Row&":G"&Target.Row).Font.ColorIndex=15'在商品单价表中对已选过的行作标记

9、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:MsgBox"出错!"End Sub 5、第五步:双击列表中的Sheet12(销售单,在弹出窗口中编写如下代吗:'新增

10、表单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 Sn""Then'检测数据是否已被清除My1.Range("A"&Sn&":G"&Sn).Font.C

11、olorIndex=0'清除商品单价表的某行标记My1.Range("H"&Sn).Value=""'清除标记End If Next EMy2.Copy after:=Sheets(1)'复制表单ActiveSheet.Shapes.Range(Array("CommandButton3","CommandButton1","CommandButton2","CommandButton4").Select Selection.Delete

12、9;清除形状按钮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 Sub CommandButton2_Click()X=Selection.Address'所选区域的单元格绝对地址For I=1 To Len(X)If Mid(X,I,1)=":"

13、Then A1=A2:A2=""If Val(Mid(X,I,1)0 Or Mid(X,I,1)="0"Then 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&&

14、quot;-"&A2&"行"&Chr(13)&Chr(13)&"确实要清除区域中的数据吗?",vbYesNo,"清除")=vbYes Then Set My1=Sheets("商品单价")Set My2=Sheets("销售单")For E=A1 To A2 Sn=My2.Cells(E,12)If Sn""Then'检测数据是否已被清除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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论