如果我的工作表2上的T5单元格为空,我试图阻止打印功能。我的代码:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If IsEmpty(Range("T5")) Then
Cancel = True
MsgBox ("Insert Employee Number in REPAIR WORKSCOPE tab")
End If
End Sub
我尝试在IsEmpty
命令之前执行ActiveSheet.Name =“Sheet 2”,但是当我尝试运行时,我只会收到错误。
答案 0 :(得分:0)
您可以使用And来检查两种情况。
If IsEmpty(Range("T5")) And ActiveSheet.Name = "Sheet 2" Then
答案 1 :(得分:0)
Range
始终解析为ActiveSheet
,除非另有明确限定。
试试这个:
If IsEmpty(Sheets("Sheet2").Range("T5"))
注意:
ActiveSheet.Name =“Sheet 2”
这很可能会引发错误,因为这不是您“激活”工作表的方式,如果另一个工作表“活动”且 Sheet2
已经存在,那么您将会得到一个Key错误。你可以这样做:
Sheets("Sheet2").Activate
然后您的原始代码将起作用。
我的偏好是使用另一种方法明确地将范围限定为所需的工作表,并避免需要激活任何东西:)
如果您想阻止第2张打印 ,请执行以下操作:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Sheet2" And IsEmpty(Sheets("Sheet2").Range("T5").Value) Then
Cancel = True
MsgBox ("Insert Employee Number in REPAIR WORKSCOPE tab")
End If
End Sub
如果您想要阻止所有打印,请仅基于Sheet2中的T5
值:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If IsEmpty(Sheets("Sheet2").Range("T5").Value) Then
Cancel = True
MsgBox ("Insert Employee Number in REPAIR WORKSCOPE tab")
End If
End Sub