首页 > 解决方案 > 为什么当我按下运行时 VBA 要求我输入宏名称?

问题描述

我是 VBA 新手。下面是在打印前提醒用户注意空白单元格的代码:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If Sheets("Sheet1").Range("F23").Value = "" Then
        Cancel = True
        MsgBox ("Please populate F23")
    End If
End Sub

然而,当我按下。运行,它提示我输入宏名称。我可以知道为什么吗?解决方案是什么?

标签: excelvba

解决方案


您的宏有一个非可选参数Cancel. 当您按下 时F5,VBA 检测到此参数,确定没有它就无法运行宏,然后打开通用的“运行宏”屏幕。

如果您希望在不触发事件(即打印)的情况下运行它,那么您需要将以下代码放入另一个子例程或立即窗口(VBA 中的Ctrl+ G)中,然后按下Enter以从那里运行它:

Workbook_BeforePrint False

(这将参数传递False给 Parameter Cancel


推荐阅读