gpt4 book ai didi

vba - excel vba中打印和打印预览事件的区别

转载 作者:行者123 更新时间:2023-12-02 12:20:04 28 4
gpt4 key购买 nike

我有一些代码可以拦截 Excel 中的 Before_Print 事件,以确保用户在打印工作表之前已填写所有必填字段。但是,我只希望在用户实际打印时触发此代码,而不是在他们只是调用打印预览时触发。

有什么方法可以在 Before_Print 代码中判断用户是在实际打印还是只是在预览?

我当前拥有的代码是(事件 stub 由Excel生成):

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Not Sheet2.CheckAllFieldsFilled Then
Cancel = True
End If
End Sub

最佳答案

我认为没有一种巧妙的方法来确定事件是打印预览还是打印请求。

下面的解决方案并不是特别简洁,并且给用户带来了轻微的不便,但它确实有效。

代码取消事件,然后提示用户,根据用户的响应显示打印预览或打印。

Private Sub Workbook_BeforePrint(Cancel As Boolean)

Dim Print_or_Preview As XlYesNoGuess

Application.EnableEvents = False

Cancel = True
Print_or_Preview = MsgBox("Show Print Preview?", vbYesNo)

If Print_or_Preview = True Then
ActiveWindow.ActiveSheet.PrintPreview
Else
ActiveWindow.ActiveSheet.PrintOut
End If
Application.EnableEvents = True

End Sub

关于vba - excel vba中打印和打印预览事件的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1371107/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com