excel 打印 VBA 问题
答案:6 悬赏:80 手机版
解决时间 2021-11-21 10:04
- 提问者网友:杀手的诗
- 2021-11-20 13:27
excel 打印 VBA 问题
最佳答案
- 五星知识达人网友:摆渡翁
- 2021-11-20 13:47
VBA设置excel自动打印:
sub dayin()
Application.ActiveSheet.PrintOut copies:=1
end sub
这是打印当前的工作表 打印一份
如果是打印当前工作薄中的工作表
Excel.ActiveWorkBook.PrintOut(1,Excel.WorkSheets.count,1,.T.) 带参数的打印
参数说明:共四个参数
参数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打印机来打印,并且,要逐份打印。
sub dayin()
Application.ActiveSheet.PrintOut copies:=1
end sub
这是打印当前的工作表 打印一份
如果是打印当前工作薄中的工作表
Excel.ActiveWorkBook.PrintOut(1,Excel.WorkSheets.count,1,.T.) 带参数的打印
参数说明:共四个参数
参数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楼网友:胯下狙击手
- 2021-11-20 19:50
你的程序就是beforeprint执行的啊,大打印之前。执行A1+1追问那请问怎么能执行打印之后执行A1+1
- 2楼网友:野味小生
- 2021-11-20 18:18
因为你点击打印之后,在打印之前将A1单元格的内容加一了啊
Workbook_BeforePrint就是说在打印之前会执行这个Sub,其中
Sheets(1).Range("a1").Value = Sheets(1).Range("a1").Value + 1
这个动作就是将A1 的值加一
附加:你将BeforePrint改为AfterPrint试试
Workbook_BeforePrint就是说在打印之前会执行这个Sub,其中
Sheets(1).Range("a1").Value = Sheets(1).Range("a1").Value + 1
这个动作就是将A1 的值加一
附加:你将BeforePrint改为AfterPrint试试
- 3楼网友:雪起风沙痕
- 2021-11-20 16:47
1,设置好 打印区域
2.在按钮中加入代码 Application.Dialogs(xlDialogPrint).Show
2.在按钮中加入代码 Application.Dialogs(xlDialogPrint).Show
- 4楼网友:白昼之月
- 2021-11-20 15:08
这是语句的问题。sheet(1).Range("a1").value 表示的是A1单元格的值。后面的sheet(1).Range("a1").value+1意思是在A1的值上+1。所以就出现A1=A1+1 也就是你距离说明的数字变成2了。
现在的A1值为1然后+1,所以A1=2
现在的A1值为1然后+1,所以A1=2
- 5楼网友:十年萤火照君眠
- 2021-11-20 14:55
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False '不触发BeforePrint事件
ActiveSheet.PrintOut
Sheets(1).Range("a1").Value = Sheets(1).Range("a1").Value + 1
Application.EnableEvents = True
Cancel = True '取消打印
End Sub追问有用.就是这个选择打印机那里怎么没有了?能不能指定打印机号?追答你可以用
dim pnt as printer
for each pnt in printers
next
遍历打印机,
用 Application.ActivePrinter=打印机的名字
选择
具体代码你自己写吧
Application.EnableEvents = False '不触发BeforePrint事件
ActiveSheet.PrintOut
Sheets(1).Range("a1").Value = Sheets(1).Range("a1").Value + 1
Application.EnableEvents = True
Cancel = True '取消打印
End Sub追问有用.就是这个选择打印机那里怎么没有了?能不能指定打印机号?追答你可以用
dim pnt as printer
for each pnt in printers
next
遍历打印机,
用 Application.ActivePrinter=打印机的名字
选择
具体代码你自己写吧
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯