【发布时间】:2018-12-05 22:26:21
【问题描述】:
我目前有一个电子表格,可以从另一张表格中提取信息。它使用一系列 Vlookup 公式,使用 Sheet1 中的客户详细信息生成消息。为了发送这些电子邮件,我一直在使用两个宏命令。一个简单的复制范围(B4:L36):
Sub Copy()
Copy Macro
Range("B4:L36").Select
Selection.Copy
End Sub
另一个命令打开一封空白电子邮件:
Sub MailIt()
Dim oMailItem As Object
Dim oOLapp As Object
Set oOLapp = CreateObject("Outlook.application")
Set oMailItem = oOLapp.CreateItem(0)
With oMailItem
.To = ""
.CC = ""
.Subject = ""
.Body = ""
.Display
End With
Set oOLapp = Nothing
Set oMailItem = Nothing
End Sub
然后我将消息作为图片粘贴到电子邮件正文中。我回到我的电子表格并从 E1:J1 范围内复制生成的标题并将其粘贴为我的电子邮件主题。最后,我从 L2 复制收件人地址并将其粘贴到我的电子邮件中并发送。
有没有办法有一个 VBA 命令:
- 查看 L2 中的地址并将其粘贴为电子邮件中的收件人地址(假设 VLookup 公式不会干扰此操作)。
- 从 E1:J1 复制标题范围并将其粘贴为电子邮件主题。
- 复制邮件范围 (B4:L36) 并将其粘贴为电子邮件正文(作为图片)。
作为visual example 电子表格正在做什么,请查看超链接。基本思想是它从 INFO 选项卡中获取详细信息并使用 VLookup 公式在 Proforma 选项卡中生成消息(出于数据保护的原因,我已将消息涂黑)。如果有更好的方法可以做到这一点,请告诉我 - 我总是很乐意了解更多!
我对此进行了大量研究,发现可以创建执行此操作的电子邮件,但是,我正在努力让它发挥作用,希望能得到一些帮助!
谢谢。
【问题讨论】:
-
您可以简单地将
.To = ""替换为.To = Range("L2").Value吗?同样,.Subject = Range("E1").Value&Range("F1").Value&Range("G1").Value...etc."?图片好像比较复杂,回复here -
我在使用该格式时收到“错误不匹配”。你有什么想法吗?
-
我看到你有一个解决方案,但我仍然会回答这个问题。类型必须是字符串,但单元格中的值可能是某种类型的数字(int、long 等),因此您可以使用vartype 来确认它是字符串。您也可以在代码中使用
.Text代替.Value.。 -
对延迟回复表示歉意。感谢您,To 和 Subject 地址按预期工作 - 尽管 &Range 方面出现语法错误。是否有更简单的方法将指定的 Excel 范围复制到电子邮件正文中,如下面的解决方案?