乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 请教,在<em>Excel</em> <em>VBA</em>中如何打印

请教,在<em>Excel</em> <em>VBA</em>中如何打印

作者:乔山办公网日期:

返回目录:excel表格制作


sub dayin()
Application.ActiveSheet.PrintOut copies:=1
end sub
这是打印当前的工作表 打印一份
如果是打印当前工作薄中的工作表
Excel.ActiveWorkBook.PrintOut(1,Excel.WorkSheets.count,1,.T.) 带参数的打印
参数说明:共7a64e59b9ee7ad94330四个参数
参数1-数值:当前工作簿中进行打印的起始工作表号(默认1)参数2-数值:当前工作簿中进行打印的结束工作表号(默认最末)
参数3-数值:打印份数(默认1)
参数4-逻辑值:是预览打印还是直接打印:.T.-预览打印,.F.-直接打印(默认.F.)
Excel.ActiveSheet.PrintOut()
  参数说明:共八个参数
  参数1-数值:起始页号,省略则默认为开始位置参数2-数值:终止页号,省略则默认为最后一页
参数3-数值:打印份数,省略则默认为1份
参数4-逻辑值:是否预览,省略则默认为直接打印(.F.)
参数5-字符值:设置活动打印机名称,省略则为默认打印机
参数6-逻辑值:是否输出到文件,省略则默认为否(.F.),若选.T.且参数8为空,则Excel提示输入要输出的文件名
参数7-逻辑值:输出类型,省略则默认为(.T.)逐份打印,否则逐页打印
参数8-字符值:当参数6为.T.时,设置要打印到的文件名
Excel.ActiveSheet.PrintOut(1,3,6,.F.,"MyPrinter",.F.,.T.,,) 从1页打印到3页,打印6份,通过MyPrinter打印机来打印,并且,要逐份打印。

1、用重命名方式将Sheet5的名称修改为了“测试表单”,但在VBAProject中,前面的名字依然叫Sheet5。

2、点击 VBAProject下面的Sheet3,下面对应出现Sheet3的属性,我们能够看到属性中 一个叫“名称”,就是工作表的CodeName,另外一个Name,就是平时大家所见的Sheet 的名字。

3、在“名称”属性中输入新的名称,直接对CodeName进行修改。

4、工作表的CodeName就是工作表在VBE工程中所在部件的名称,通过修改VBE工程中所在部件的名称来达到修改工作表的CodeName的目的。

5、运行,输入新的codename以后,系统给出提示“未信任到VB工程访问,请在信任选项中勾选VB工程访问”。

6、点击开发工具|宏安全性,打开宏安全性配置窗口。

7、勾选“信任对VBA工程对象模型的访问”,然后点击确定。

8、重新运行,成功将Sheet1修改为testaaa。


修改Workbook_BeforePrint方法

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If [A1] = "" Or [B3] = "" Or [C5] = "" Then
        MsgBox "数据不完整,打印被取消!"
        Cancel = True
    End If
End Sub



不用楼上这么复杂吧,直接加个条件判断一下就可以了,比如我的条件是SHEET1中A1为5时不能打印
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Sheet1.Cells(1, 1) = 5 Then Cancel = False
End Sub

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网