Vba 将变量作为参数传递到它自己的with块中

Vba 将变量作为参数传递到它自己的with块中,vba,reference,subroutine,with-statement,param,Vba,Reference,Subroutine,With Statement,Param,我在VBA中调整outlook规则,无意中/本能地尝试通过将变量引用为With块中的点来传递变量 在我的例子中,var是CurrentItem,我的一个子例程希望它出现在param列表中。通常,您可以使用点(例如With regEx.Global=True、.Pattern=“^.*$”End With)来简写With块中的var 但是,试图将一个点作为arg传递并没有起作用。我很好奇,With块中是否有这样一个引用var本身的速记?下面是代码示例: With CurrentItem I

我在VBA中调整outlook规则,无意中/本能地尝试通过将变量引用为With块中的点来传递变量

在我的例子中,var是CurrentItem,我的一个子例程希望它出现在param列表中。通常,您可以使用点(例如With regEx.Global=True、.Pattern=“^.*$”End With)来简写With块中的var

但是,试图将一个点作为arg传递并没有起作用。我很好奇,With块中是否有这样一个引用var本身的速记?下面是代码示例:

With CurrentItem
    If .Class = olMail Then
        sFromName = .SenderName
        sID = .Sender.ID
        ''dot arg that doesn't work:
        ''GetSMTP sFromName, sID, .
        GetSMTP sFromName, sID, CurrentItem 
    End If
End With

否,您不能使用块引用
中的当前项。这确实是你能得到的最好的:

With CurrentItem
    If .Class = olMail Then
        GetSMTP .SenderName, .Sender.ID, CurrentItem 
    End If
End With

别忘了把我的答案标为已接受。