运行命令未显示VBA脚本是否要求将任何参数传递给它

时间:2018-10-10 10:17:15

标签: vba outlook outlook-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

2 个答案:

答案 0 :(得分:0)

仅当代码可以独立运行时,运行命令才有用。在对话框中显示其他代码毫无意义。

要使用需要参数的代码(在本例中为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

答案 1 :(得分:0)

我注意到第一个方法提供了Item参数,如果是这样,则需要创建一个新规则,选择执行脚本的动作,选择此方法的脚本,就可以自动接收消息将附件保存到磁盘。此外,请检查是否是因为您没有在这些计算机上创建Outlook规则而导致它们无法正常工作。