Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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
Excel .htmlbody中的选择将不接受多个单元格进行复制_Excel_Vba - Fatal编程技术网

Excel .htmlbody中的选择将不接受多个单元格进行复制

Excel .htmlbody中的选择将不接受多个单元格进行复制,excel,vba,Excel,Vba,我正在尝试创建一个自动电子邮件,它将从一个特殊的用户选择中获取所有相关数据。我需要它在选择中拾取某些单元格(总是相同的单元格),并将它们放入电子邮件的不同部分 当我将Selection.PasteSpecial输出到电子邮件正文时,或者如果我仅将“Selection”添加到正文中,会出现两种奇怪的行为 1) 当我选择多个单元格时,即使选择范围是一个范围,也会出现类型不匹配错误。在主体内部单独使用“选择”会产生此错误(见下文) 2) 它将“True”添加到电子邮件中,而不是数据本身。事实上,我之前

我正在尝试创建一个自动电子邮件,它将从一个特殊的用户选择中获取所有相关数据。我需要它在选择中拾取某些单元格(总是相同的单元格),并将它们放入电子邮件的不同部分

当我将Selection.PasteSpecial输出到电子邮件正文时,或者如果我仅将“Selection”添加到正文中,会出现两种奇怪的行为

1) 当我选择多个单元格时,即使选择范围是一个范围,也会出现类型不匹配错误。在主体内部单独使用“选择”会产生此错误(见下文)

2) 它将“True”添加到电子邮件中,而不是数据本身。事实上,我之前有过这个,但现在无法复制。这是一种特殊的结合

这是我现在的代码:

Sub X()

   Dim OlApp As Outlook.Application
   Dim ObjMail As Outlook.MailItem
   Dim strTo As String
   Dim strSubject As String
   Dim strHTMLBody As String
   Dim Sel As Range
   Dim SelCopy As Range

   Set Sel = Selection
   Set SelCopy = Selection.Copy
   ' Set SelPaste =
   ' Set SelCopy = Sel.Copy

   Set OlApp = Outlook.Application
   Set ObjMail = OlApp.CreateItem(olMailItem)
   strHTMLBody = "Hello<br>" & "Me" & Selection
'Special([Paste As XlPasteType = xlPasteAll])
   ObjMail.To = strTo
   ObjMail.Subject = strSubject
   ObjMail.Display
   'You now have the default signature within ObjMail.HTMLBody.
   'Add this after adding strHTMLBody
   ObjMail.HTMLBody = strHTMLBody & ObjMail.HTMLBody

   'ObjMail.Send 'send immediately or
   'ObjMail.close olSave 'save as draft
   'Set OlApp = Nothing

End Sub
subx()
Dim OlApp作为Outlook.Application
将ObjMail设置为Outlook.MailItem
作为字符串的Dim strTo
作为字符串的Dim strSubject
作为字符串的Dim strHTMLBody
昏暗的选择范围
变暗SelCopy As范围
设置Sel=选择
设置SelCopy=Selection.Copy
'设置粘贴=
'设置SelCopy=Sel.Copy
设置OlApp=Outlook.Application
Set ObjMail=OlApp.CreateItem(olMailItem)
strHTMLBody=“你好
”和“我”选择 '特殊([粘贴为XlPasteType=xlPasteAll]) ObjMail.To=strTo ObjMail.Subject=strSubject ObjMail.Display '您现在拥有ObjMail.HTMLBody中的默认签名。 '在添加strHTMLBody之后添加此 ObjMail.HTMLBody=strHTMLBody&ObjMail.HTMLBody “ObjMail.Send”立即发送或 “ObjMail.close olSave”另存为草稿 'Set OlApp=Nothing 端接头
您需要为Body构建一个字符串您好,请您解释一下好吗?我相信我已经构建了strHTMLBody。