首页 > 解决方案 > 运行命令未显示 VBA 脚本是否需要将任何参数传递给它

问题描述

我有一个 Outlook VBA 脚本,但如果要向它传递任何参数,它就不会运行。

这不起作用:

Public Sub SaveOutlookAttachmentsToDisk(MItem As Outlook.MailItem)
    Dim oOutlookAttachment As Outlook.Attachment
    Dim sSaveAttachmentsFolder As String
    sSaveAttachmentsFolder = "\Document\FTP\"
    For Each oOutlookAttachment In MItem.Attachments
        oOutlookAttachment.SaveAsFile sSaveAttachmentsFolder & oOutlookAttachment.DisplayName
    Next
End Sub

这有效:

Public Sub SaveOutlookAttachmentsToDisk()

End Sub

标签: vbaoutlook

解决方案


run 命令仅在代码可以独立运行的情况下才有用。让其他代码出现在对话框中是没有意义的。

要使用需要参数的代码,在本例中为 mailitem 对象,您首先需要一个 mailitem。

您可以像这样从按钮运行间接使用参数的代码。

Option Explicit

Sub runCodeThatRequiresParameter1()

    Dim currItem As mailItem

    ' First open an appropriate mailitem
    Set currItem = ActiveInspector.currentItem

    ' Pass item to SaveOutlookAttachmentsToDisk
    SaveOutlookAttachmentsToDisk currItem

End Sub


Sub runCodeThatRequiresParameter2()

    Dim currItem As mailItem

    ' First select an appropriate mailitem
    Set currItem = ActiveExplorer.Selection(1)

    ' Pass item to SaveOutlookAttachmentsToDisk
    SaveOutlookAttachmentsToDisk currItem

End Sub

推荐阅读