Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过VBA将Excel中的命名区域中的值获取到Outlook电子邮件中_Excel_Vba_Email_Outlook_Range - Fatal编程技术网

通过VBA将Excel中的命名区域中的值获取到Outlook电子邮件中

通过VBA将Excel中的命名区域中的值获取到Outlook电子邮件中,excel,vba,email,outlook,range,Excel,Vba,Email,Outlook,Range,我需要一些帮助,通过VBA将工作簿中指定范围的值输入Outlook电子邮件 在名为“设置”的选项卡上,我为单元格C3:C8指定了一个范围,称为EmailTo。每行都有不同的电子邮件地址 我可以打开一封电子邮件,但当我使用.to=Range(“EmailTo”)时,它会给我一个错误,告诉我此对象不支持此方法 Public Sub Outlook() Dim outlook As Object Dim email As Object Set outlook = CreateObject(&quo

我需要一些帮助,通过VBA将工作簿中指定范围的值输入Outlook电子邮件

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

我可以打开一封电子邮件,但当我使用.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

只有一个单元格指定了一个命名区域,但当命名区域分布在多个单元格中时,它不起作用。

应将命名区域中的电子邮件地址列为以分号分隔的字符串

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