如何让 Excel 要求用户允许宏,否则无法打开工作簿?

Car*_*ven 2 excel vba ms-office

我的 Excel 文件中有一个宏,用于确定用户是否可以打开它。但是,似乎根据用户机器的设置,Excel 默认情况下禁用宏。这最终打开并显示了 xls 文件中的内容。

如何确保用户必须接受运行宏或 Excel 将关闭工作簿?

Ber*_*ier 5

更新了代码,因为它并没有完全按照它的意思去做......

这几乎是您可以使用宏执行此操作的唯一方法(感谢@OlleSjögren 提供洞察力:p)

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Dim Current As Worksheet
    Worksheets.Add(Before:=Worksheets(1)).Name = "Protection"
    Worksheets("Protection").Cells(1, 1) = "Please activate macros to view this workbook."

    For Each Current In Worksheets
        If Current.Name <> "Protection" Then
            Current.Visible = xlSheetVeryHidden
        End If
    Next Current


End Sub

Private Sub Workbook_Open()

    Dim Current As Worksheet

    For Each Current In Worksheets
         Current.Visible = xlSheetVisible
    Next Current

    Application.DisplayAlerts = False
    Worksheets("Protection").Delete
    Application.DisplayAlerts = True

End Sub
Run Code Online (Sandbox Code Playgroud)

该属性xlSheetVeryHidden意味着它不能通过 UI 可见(只有 VBA 代码可以更改它)。