我正在使用VBA在excel中发送一系列单元格的电子邮件。当我复制到outlook时,表的大小变得混乱,所有文本都被包装起来。
我想保持我的表的格式和大小相同,我试图复制为图片,但图片变得非常小。它来自A1:AP98
。
有人可以帮忙吗?我正在使用Microsoft Office 2010
下面是我的代码
Sub SendEmail()
Dim olApp As Outlook.Application
Set olApp = CreateObject("Outlook.Application")
Dim olMail As Outlook.MailItem
Set olMail = olApp.CreateItem(olMailItem)
olMail.Display
olMail.To = "xxxx@xxxx.com"
olMail.Subject = "Subject Line"
olMail.HTMLBody = "Hello," & vbNewLine & vbNewLine & _
"Welcome to My World" & vbNewLine & vbNewLine & _
RangetoHTML(ActiveSheet.Range("A1:Ap90")) & _
"Thank you for your cooperation." & "<br>" & olMail.HTMLBody
' olMail.Send
End Sub
答案 0 :(得分:0)
你可以通过分成几部分来做到这一点。
首先,您需要将所需数据提取到新工作表中。您可以稍后删除工作表。
如果您希望复制格式,也可以使用
像ThisWorkbook.Sheets("Copy").Range("A1").PasteSpecial Paste:=xlPasteFormats
这样的东西。您可能需要xlPasteFormats
,xlPasteColumnWidths
&amp; xlPasteValues
。
要创建新工作表:Sheets.Add(, Sheets(Sheets.Count)).name = "worksheetName"
MailEnvelop示例
Sub sendEmail()
ThisWorkbook.EnvelopeVisible = True
With ThisWorkbook.Sheets("Copy").MailEnvelope
.Introduction = "This is the email message"
.Item.To = "abc@domain.com"
.Item.Subject = "Subject"
.Item.Send
End With
ThisWorkbook.EnvelopeVisible = False
'Delete the the worksheet
ThisWorkbook.Sheets("Copy").Delete
End Sub
请阅读此处以获取一些好的指南:https://www.rondebruin.nl/win/s1/outlook/mail.htm
答案 1 :(得分:0)
将其粘贴为HTML对象。
tibble(v) %>% tidytext::unnest_tokens(word, v) %>% group_by(word) %>% count()
# A tibble: 8 x 2
# Groups: word [8]
word n
<chr> <int>
1 dance 4
2 everybody 4
3 give 2
4 me 2
5 music 2
6 now 4
7 the 2
8 yeah 3