excel出现中文乱码的解决教程-英雄云拓展知识分享
133
2023-11-07
【摘要】 本书摘自《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》一书中第3章,第10节,陈锡卢、李应钦著。
3.10 打印前触发事件: Workbook.Before Print
无言:打印前有时会忘记填写某项内容,就哗哗啦啦地将一张张雪白的A4 纸或者几联纸 打印出来,皮蛋,遇到过这样的情况没?
皮蛋:呵呵,这个有过。以前随便打,现在不行了,对于销售单据连号的,废了联就要 “挨板子”——扣款,所以我现在都检查了又检查,但看多了眼花花,容易漏错。
无言:那好,现在教你一个打印事件,而且是打印前执行的哦,这样能减少“挨板子”。
皮蛋:啥事件过程?
无言: Workbook.BeforePrin t 事件过程,先来看事件外壳和作用,后面再讲“挨板子” 问题。
在打印指定工作簿(或者其中的任何内容)之前,发生此事件
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Statements(中间代码语句)
End Sub
Workbook.BeforePrint事件过程只有1个Cancel参数,就像其他事件过程一样,该参数决 定了响应了事件后是否继续执行某个操作。在这里Cancel参数的作用是响应后是否执行打印 输出。
无言:现在来说说“挨板子”的问题,可以通过该事件来判断单元格中的数据是否完整, 减少“挨板子”。
代码3-22为打印前检测数据完整性的示例代码。
代码3- 22 打印前检测数据的完整性
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Rng1 As Range,Rng2 As Range,Erl As Byte,Err2 As Byte
With Sheet1
Set Rngl =Application.Union(.Range("D3:D5"),.Range("H3:HS"),Range("D6"),.Range("F6"),
Range("D7"),.Range("H7"))
Set Rng2=.Cells(9,"B").Resize(.Cells(9,"B").End(xIDown).Row-9,8)
Err1=IIf(WorksheetFunction.CountA(Rng1)<10,1,0)
Em2=IIf(WorksheetFunction.CountA(Rng2) If Err1+Err2=0 Then Cancel =False Else Cancel =True Select Case Err1 +Err2 Case 1 MsgBox Rngl.Address(0,0)&"区域的相关联系方式或单号等信息未填写完整,请 检查",vbExclamation+vbOKOnly Case 2 MsgBox Rng2.Address(0,0)&"区域的相关产品清单信息不完整,请检查核对", vbExclamation+vbOKOnly Case 3 MsgBox Rngl.Address(0,0)&"区 域 " &vbCr&Rng2.Address(0,0)&" 区 域 " &vbCr_ &“相关信息均为填写完整,请检查核对”,vbExclamation+vbOKOnly End Select End If End With Sub 期等信息的区域; Rng2 变量则被赋值为订货单中的获取清单范围的区域,该区域为标题至合 计间的区域。 (2)运用lif 函数配合WorksheetFunction.CountA 工作表函数,统计Rng1 和 Rn2g 区域 中的单元格是否都具有内容:当Rng1 区域中内容小于10时,将Errl赋值为1,则赋值为0; Err2 是当区域中单元格的内容小于区域的单元格个数时,赋值为2,否则为0。 (3)判断Errl与 Err2的和,如果为0,则将Cancel赋值 False,响应事件后执行打印操作; 若两变量的和分别等于1、2、3,则通过Select Case 语句选择提供不同提示信息,并将Cancel 赋值True, 响应事件后不执行打印操作。 无言:通过上面的代码3-22事件过程,既可以节省纸张,还可以减少“挨板子”的可能 性。通过控制Workbook.BeforePrint事件的Cancel参数控制打印响应,是运用该事件的要点。 ? 皮蛋:嗯嗯,检查功能有了,看来我还要去弄一个自动填表的功能了。 无言:自动填表功能,可以通过Worksheet.SelectionChange和Worksheet.Change 事件的结 合运用搞定。但是也需要有良好的制表习惯才能节省代码。 皮蛋:这个问题不大,反正我现在很少用多表头和合并单元格了。 (1)代码3-22示例过程,首先声明了2个区域Rng 变量以及2个Byet 类型的 Err变量, Rngl 变量被赋值为 Sheetl 区域中填写关于订货单中相关人员的姓名、联系方式及订货编号日 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~