如何解决引用文档中的表值后,如何在 Word 中使用 VBA 向主题添加其他文本?
我有一个宏,可以根据 Word 文档创建电子邮件。单击该宏后,将保存 Word 文档、创建具有预定义主题的电子邮件、添加收件人、创建简短消息,然后等待用户发送。主题和正文甚至会引用 Word 文档中表格中的第一个单元格。
我需要能够在引用表格中的单元格后在主题中添加文本。但是每次我在引用的单元格(从第 1 行,第 2 列)之后添加一些内容时,什么也没有出现。当我做一些类似于 body 的事情时,它看起来像是在引用单元格值后开始了一个新行。
如何停止创建新行,以便我可以引用主题中的两个不同项目?我粘贴的代码的主题应该是“客户名称 [单元格值] #Order Number [单元格值]”,但它只给出了“客户名称 [单元格值]”。
Private Sub CommandButton1_Click()
Dim OL As Object
Dim EmailItem As Object
Dim Doc
Application.ScreenUpdating = False
Set OL = CreateObject("outlook.application")
Set EmailItem = OL.CreateItem(olMailItem)
Set Doc = ActiveDocument
On Error GoTo handler
Doc.Save
On Error GoTo 0
With EmailItem
.display
.Subject = "Customers Name " & Doc.Content.Tables(1).Cell(1,2) & " #Order Number" & Doc.Content.Tables(1).Cell(1,4)
.Body = "Please see the attached Notification for " & Doc.Content.Tables(1).Cell(1,2) & " order" & _
"" & vbCrLf & _
"Let me kNow if you have any questions." & vbCrLf & _
"" & vbCrLf & _
"Thank you," & vbCrLf & vbCrLf & _
"INSERT SIGNATURE HERE"
'Update Recipient List here:
.To = "randomemail@email.com"
.Importance = olImportancenormal
.Attachments.Add Doc.FullName
End With
Application.ScreenUpdating = True
Set Doc = nothing
Set OL = nothing
Set EmailItem = nothing
解决方法
每个单元格的末尾有两个非打印字符。您需要删除它们。
ForEach(pets,id: \.self) {
NavigationLink($0,destination: Text($0))
}
ForEach(pets,id: \.self) { pet in
NavigationLink(destination: Text(pet)) {
Text(pet)
}
}
,
单元格标记的结尾就像段落标记的结尾,这会阻止在电子邮件的主题中添加任何其他内容。
在您设置 Doc = ActiveDocument 之后的代码中添加以下内容:
Dim Rng1 As Word.Range,Rng2 As Word.Range
Set Rng1 = Doc.Content.Tables(1).Cell(1,2).Range
Rng1.MoveEnd unit:=wdCharacter,Count:=-1
Set Rng2 = Doc.Content.Tables(1).Cell(1,4).Range
Rng2.MoveEnd unit:=wdCharacter,Count:=-1
然后将主题代码的设置替换为:
.Subject = "Customers Name " & Rng1.Text & " #Order Number" & Rng2.Text
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。