Range
总是解析为ActiveSheet
,除非另有明确合格。
试试这个:
If IsEmpty(Sheets("Sheet2").Range("T5"))
注:
ActiveSheet.Name = “表2”
这很可能会引发错误,因为这不是你“如何激活“一个工作表,如果另一个表是”活动“和Sheet2
已经存在,那么你将得到一个密钥错误。你可以这样做:
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
你有什么错误? – Bmo
运行时错误“9”下标超出范围 – Sundevil