【问题标题】:How to bypass test on blank/empty MailItem.To property?如何绕过空白/空 MailItem.To 属性的测试?
【发布时间】:2019-09-08 15:12:44
【问题描述】:

当用户没有填写 MailItem 对象的.To 属性时,如何绕过标准的 Outlook 检查功能?

如果MailItem.To 为空白,我会收到一条错误消息。

我的目标是创建一个函数来检查 .To 属性何时为空白以避免 VBA 错误并显示一个消息框,停止 VBA 脚本直到对象 .To 被正确填充。

Dim objMail As Outlook.MailItem
Dim objWho As String

objWho = objMail.To

If objMail.To xxxEpmty.something Then
    MsgBox ("Object To is blank")
Else
    objWho = objMail.To

【问题讨论】:

    标签: vba outlook mailitem


    【解决方案1】:

    Use vbNullString if its blank

    Option Explicit
    Public Sub Example()
        Dim objMail As Outlook.MailItem
        Set objMail = Application.CreateItem(0)
    
        Dim objWho As String
            objWho = ""
    
            If objWho = vbNullString Then
                MsgBox "Error objwho is blank"
                Exit Sub
            End If
    
        With objMail
            .To = objWho
            .Send
        End With
    
    End Sub
    

    您还应该使用 Resolve 或 ResolveAll 方法来根据地址簿解析收件人。

    Recipient.Resolve method (Outlook)

    Recipients.ResolveAll method (Outlook)

    【讨论】:

      【解决方案2】:

      To 属性是一个字符串。

      Sub forceTo()
      
          Dim objMail As MailItem
          Dim strWho As String
      
          ' first create mail
          Set objMail = ActiveInspector.CurrentItem
      
          If objMail.To = "" Then
              MsgBox ("To field is blank")
          Else
              strWho = objMail.To
              MsgBox ("To field contains this text: " & strWho)
          End If
      
      End Sub
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-20
        • 1970-01-01
        • 1970-01-01
        • 2011-03-11
        • 1970-01-01
        相关资源
        最近更新 更多