Vba 如何调用代码where“;参数不是可选的”;?

Vba 如何调用代码where“;参数不是可选的”;?,vba,outlook,Vba,Outlook,我想制定Outlook移动邮件的规则 我有VBA代码可以工作 如何将该代码称为脚本 守则的一部分: Option Explicit Sub CheckAttachments(olItem As MailItem) Const strPath As String = "C:\Users\PC2\Documents\Temp_attachs\" Const strFindText As String = "Completed" Dim strFilename

我想制定Outlook移动邮件的规则

我有VBA代码可以工作

如何将该代码称为脚本

守则的一部分:

Option Explicit
Sub CheckAttachments(olItem As MailItem)
Const strPath As String = "C:\Users\PC2\Documents\Temp_attachs\"
Const strFindText As String = "Completed"
Dim strFilename As String
Dim olAttach As Attachment
Dim xlApp As Object
Dim xlWB As Object
Dim xlSheet As Object
Dim bXStarted As Boolean
Dim bFound As Boolean
Dim myNameSpace As Outlook.NameSpace
Dim myInbox As Outlook.Folder
Dim myDestFolder As Outlook.Folder
Set myNameSpace = Application.GetNamespace("MAPI")
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myDestFolder = myInbox.Folders("Subfolder1")

 If olItem.Attachments.Count > 0 Then
     For Each olAttach In olItem.Attachments
         If Right(LCase(olAttach.FileName), 4) = "xlsx" Then
             strFilename = strPath & Format(olItem.ReceivedTime, "yyyymmdd-HHMMSS") & _
                           Chr(32) & olAttach.FileName
             olAttach.SaveAsFile strFilename
             On Error Resume Next
             Set xlApp = GetObject(, "Excel.Application")
             If Err <> 0 Then
                 Application.StatusBar = "Please wait while Excel source is opened ... "
                 Set xlApp = CreateObject("Excel.Application")
                 bXStarted = True
             End If
             On Error GoTo 0
             'Open the workbook to read the data
             Set xlWB = xlApp.workbooks.Open(strFilename)
             Set xlSheet = xlWB.sheets("Sheet1")

             If FindValue(strFindText, xlSheet) Then
                olItem.Move myDestFolder
                
                'MsgBox "Value found in " & strFilename
                 bFound = True
             End If
             xlWB.Close 0
             If bXStarted Then xlApp.Quit
             If Not bFound Then Kill strFilename
                
             
             'Exit For
         End If
     Next olAttach
 End If
End Sub
我收到编译器错误消息:

参数不是可选的


试试这个。您需要在Check sub-(我是MailItem)中传递参数

Sub callmacro(Item as Outlook.MailItem)
call ChcekAttachments
End SUB
Sub callmacro(Item as Outlook.MailItem)
call CheckAttachments Item
End sub