Excel 设置打印区域时防止激活用户窗体
对此可能有一个非常简单的答案。 我在Excel电子表格上设计了一个捕获表,并使用了单元格D2的日期选择器。到目前为止,一切顺利。当我关闭电子表格时,我有一个小的宏,用于设置打印区域B1:M37以准备打印。此时,宏将激活日期选择器,在我继续打印之前,必须手动关闭该选择器。如何抑制事件发生,或使用代码关闭用户窗体。我的代码如下:Excel 设置打印区域时防止激活用户窗体,excel,vba,Excel,Vba,对此可能有一个非常简单的答案。 我在Excel电子表格上设计了一个捕获表,并使用了单元格D2的日期选择器。到目前为止,一切顺利。当我关闭电子表格时,我有一个小的宏,用于设置打印区域B1:M37以准备打印。此时,宏将激活日期选择器,在我继续打印之前,必须手动关闭该选择器。如何抑制事件发生,或使用代码关闭用户窗体。我的代码如下: Sub Test_a_Print_again() Range("B1:M37").Select ActiveSheet.PageSetup.PrintAr
Sub Test_a_Print_again()
Range("B1:M37").Select
ActiveSheet.PageSetup.PrintArea = "$B$1:$M$37"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Range("B1").Select
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("D2")) Is Nothing Then frmCalendar.Show '
End Sub
您的SelectionChange事件由以下行触发:
Range("B1:M37").Select
你可以做几件事:
- 不要使用选择。现在还不清楚这里是否需要它,这是一个 除非绝对必要,否则请列出VBA最常见的错误做法
- 在您的工作表\u SelectionChange事件中,如果您只希望它运行 如果选择了D2且仅选择了D2,则可以添加另一个条件: 如果Target.Cells.Count>1,则退出Sub 如果不相交(目标,范围(“D2”)为空,则frmCalendar.Show
但是,我还是要去掉Select语句。您的SelectionChange事件是由以下行触发的:
Range("B1:M37").Select
你可以做几件事:
- 不要使用选择。现在还不清楚这里是否需要它,这是一个 除非绝对必要,否则请列出VBA最常见的错误做法
- 在您的工作表\u SelectionChange事件中,如果您只希望它运行 如果选择了D2且仅选择了D2,则可以添加另一个条件: 如果Target.Cells.Count>1,则退出Sub 如果不相交(目标,范围(“D2”)为空,则frmCalendar.Show