Excel VBA到Outlook:错误类型不匹配

时间:2016-03-03 16:45:21

标签: vba excel-vba outlook excel

我正在尝试在Excel中编写一个VBA代码,该代码将创建包含以下内容的Outlook消息:

  1. 正文中的文字
  2. 一张桌子
  3. 底部的签名。
  4. 下面是我写的代码。它一直有效,直到我将Excel Table对象添加到消息正文中。它出现了一条错误消息:

      

    运行时错误:错误类型13,类型不匹配“。

    有人可以帮助我下面的代码吗?

    Sub send()
      Dim OApp As Object, OMail As Object, signature As String
      Dim TOEMAIL As Range
      Dim CCMEMAIL As Range
      Dim SUBJECT As Range
      Dim Workbook As Range
      Dim Table As Range
    
    
      Set TOEMAIL = Sheets("Macro").Range("D6")
      Set CCEMAIL = Sheets("Macro").Range("D7")
      Set SUBJECT = Sheets("Macro").Range("D8")
      Set Workbook = Sheets("Macro").Range("D5")
      Set Table = Sheets("Sheet1").Range("B7:B17")
    
      Set OApp = CreateObject("Outlook.Application")
      Set OMail = OApp.CreateItem(0)
      With OMail
       .Display
      End With
    
      signature = OMail.body
      With OMail
       .To = TOEMAIL
       .CC = CCEMAIL
       .SUBJECT = SUBJECT
       .Attachments.Add (Workbook)
       .body = "Hello, this is a test." & vbNewLine & Table & vbNewLine & signature & vbNewLine
      End With
      Set OMail = Nothing
      Set OApp = Nothing
    End Sub
    

1 个答案:

答案 0 :(得分:0)

MailItem.Body属性需要一个字符串。您正在尝试连接几个字符串和一个Range对象。您有责任从该表中提取相关数据并将其表示为字符串。

您可能最好创建一个HTML表并改为设置MailItem.HTMLBody属性。