【问题标题】:Get values from a named range in Excel into an Outlook email从 Excel 中的命名范围中获取值到 Outlook 电子邮件中
【发布时间】:2021-08-04 18:22:13
【问题描述】:

我需要将工作簿中命名范围的值放入 Outlook 邮件中。

在名为“设置”的选项卡上,我有一个名为 EmailTo 的单元格 C3:C8 的命名范围。每行都有一个不同的电子邮件地址。

.To = Range("EmailTo") 报错

对象不支持此方法

Public Sub Outlook()
    
    Dim outlook As Object
    Dim email As Object
    
    Set outlook = CreateObject("Outlook.Application")
    Set email = outlook.CreateItem(olMailItem)
    
    With email
        .To = Range("EmailTo")
        .Display
    End With
    
End Sub

当有一个单元格被指定一个命名范围时,它可以工作,但当命名范围分布在多个单元格时,它就不起作用。

【问题讨论】:

    标签: excel vba email outlook range


    【解决方案1】:

    您应该将指定范围内的电子邮件地址列出为以分号分隔的字符串。

    Public Sub Outlook()
    
    Dim Outlook As Object
    Dim email As Object
    Dim strTo As String
    Dim i As Long
    
    Set Outlook = CreateObject("Outlook.Application")
    Set email = Outlook.CreateItem(olMailItem)
    
    With Range("EmailTo").Cells
      For i = 1 To .Count
        If Not IsEmpty(.Item(i)) Then         'skip empty cells
          strTo = strTo & "; " & Trim$(.Item(i).Value) 'add all e-mail addresses with delimiter
        End If
      Next i
      strTo = Mid(strTo, 3)                   'remove leading semicolon and space
    End With
    
    With email
      .To = strTo
      .Display
    End With
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2021-09-27
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-09
      相关资源
      最近更新 更多