【问题标题】:add mail body from excel range vba从excel范围vba添加邮件正文
【发布时间】:2018-05-09 23:24:27
【问题描述】:

我有一个数据库,只有姓名和电子邮件地址,我需要使用特定的固定文本创建单独的电子邮件,该文本位于我的 Excel 的特定范围内,并将其保存在我硬盘的特定文件夹中开车。

但是,我遇到了正文问题。

代码如下:

Sub test()
Dim Sendrng As Range
Dim outlookApp As Outlook.Application
Dim outlookMail As Outlook.MailItem
Dim i As Integer


For i = 2 To ActiveSheet.Cells(5, 2).Value + 1

    Set Sendrng = ActiveSheet.Range("B12:K29")
    Set outlookApp = New Outlook.Application
    Set outlookMail = outlookApp.CreateItem(olMailItem)
    With outlookMail
        .To = ActiveSheet.Cells(7, 2).Value
        .Subject = ActiveSheet.Cells(8, 2).Value
        '.HTMLBody = Sendrng
        .Save
    End With

    i = i + 1

    ActiveSheet.Cells(4, 2) = i

    Set outlookMail = Nothing
    Set outlookApp = Nothing

Next i

'I want to start every time in position 2
ActiveSheet.Cells(4, 2) = 2

End Sub

你能告诉我哪里不见了吗?我收到以下错误:运行时错误 13:类型不匹配

谢谢, 恩里克

【问题讨论】:

    标签: excel vba email outlook range


    【解决方案1】:

    您需要使用Range 类的Text 属性而不是Value

    Sub test()
      Dim Sendrng As Range
      Dim outlookApp As Outlook.Application
      Dim outlookMail As Outlook.MailItem
      Dim i As Integer
    
    
      For i = 2 To ActiveSheet.Cells(5, 2).Value + 1
        Set Sendrng = ActiveSheet.Range("B12:K29")
        Set outlookApp = New Outlook.Application
        Set outlookMail = outlookApp.CreateItem(olMailItem)
        With outlookMail
          .To = ActiveSheet.Cells(7, 2).Text
          .Subject = ActiveSheet.Cells(8, 2).Text
          .Save
        End With
        i = i + 1
        ActiveSheet.Cells(4, 2) = i
        Set outlookMail = Nothing
        Set outlookApp = Nothing
    
      Next i
    
     'I want to start every time in position 2
     ActiveSheet.Cells(4, 2) = 2
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-04
      • 2021-09-24
      • 1970-01-01
      • 2019-07-22
      • 1970-01-01
      • 2020-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多