首页 > 解决方案 > 如何在 Excel VBA 中显示警报消息?

问题描述

我有一个 excel (保存为 Excel 启用宏的工作簿)文件,如下所示:

在此处输入图像描述

现在,我创建了这个函数,当他打开文件时通知他。

Private Sub Workbook_Open()
    Dim i As Long, lastRow As Long

    lastRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 To lastRow
        If DateDiff("d", Cells(i, 4), Date) <= 90 Then
            MsgBox (Cells(i, 2) + " is expiring!")
        End If
    Next

End Sub

该过程设置为Open并且对象设置为Workbook,我现在的问题是它不显示警报消息,除非我执行此操作:打开 Visual Basic 开发人员选项卡 -> 重新打开文件 -> 并收到此警告消息:Warning: It is not possible to determine that this content came from a trustworthy source. You should leave this content disabled unless the content provides critical functionality and you trust its source 然后单击启用宏

我正在使用 excel-2007

任何帮助深表感谢。

标签: excelvbanotifications

解决方案


这是一项安全功能。用户必须先启用宏,然后才能运行任何代码。您无法在代码中执行任何操作来防止这种情况发生。

如果文件始终在同一个文件夹中,您可以将该文件夹添加为受信任的位置,这样警告就不会出现:

  1. 选择文件 > 选项。
  2. 单击信任中心,然后单击信任中心设置...
  3. 单击受信任的位置。
  4. 如果[包含文件的文件夹]未列为受信任位置,请单击“添加新位置...”。输入路径[...]或单击浏览... 找到并选择它。
  5. 单击确定。

推荐阅读