微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

引用文档中的表值后,如何在 Word 中使用 VBA 向主题添加其他文本?

如何解决引用文档中的表值后,如何在 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 举报,一经查实,本站将立刻删除。