gpt4 book ai didi

VBA Outlook WordEditor 和.Display 方法

转载 作者:行者123 更新时间:2023-12-04 02:27:59 25 4
gpt4 key购买 nike

我进行了合理的“谷歌搜索”,但找不到我的问题的答案。

我有以下两个子例程。两者完全相同,除了第一个有“ForwardMailItem.Display”,而第二个没有。结果是第一个生成的电子邮件草稿包含插入的文本“testing here”,而第二个生成的电子邮件草稿不包含插入的文本。我有几个问题,希望有人能帮助我。 1) 我如何在不使用 .Display 方法的情况下在转发的电子邮件中成功插入新文本,因为 .InsertBefore 本身似乎并不能解决问题? 2) .Display 在我的案例中除了直观地显示项目外还有什么特别的作用?

Sub TestInsertBeforeWithDisplay()

Dim NewMailItem As Outlook.MailItem
Dim ForwardMailItem As Outlook.MailItem

For Each NewMailItem In Application.Session.GetDefaultFolder(olFolderInbox).Items.Restrict("[Unread]=true")
Set ForwardMailItem = NewMailItem.FORWARD
ForwardMailItem.GetInspector.WordEditor.Characters(1).InsertBefore "testing here"
ForwardMailItem.Display
ForwardMailItem.Close olSave
Next NewMailItem

End Sub

Sub TestInsertBeforeWithoutDisplay()

Dim NewMailItem As Outlook.MailItem
Dim ForwardMailItem As Outlook.MailItem

For Each NewMailItem In Application.Session.GetDefaultFolder(olFolderInbox).Items.Restrict("[Unread]=true")
Set ForwardMailItem = NewMailItem.FORWARD
ForwardMailItem.GetInspector.WordEditor.Characters(1).InsertBefore "testing here"
ForwardMailItem.Close olSave
Next NewMailItem

End Sub

最佳答案

有趣的问题。我不经常对 Outlook 进行编码,但我认为答案是您必须关闭并保存 ActiveInspector:

Sub TestInsertBeforeWithDisplay()
Dim NewMailItem As Outlook.MailItem
Dim ForwardMailItem As Outlook.MailItem
Dim ActInsp As Outlook.Inspector

For Each NewMailItem In Application.Session.GetDefaultFolder(olFolderInbox).Items.Restrict("[Unread]=true")
Set ForwardMailItem = NewMailItem.Forward
Set ActInsp = ForwardMailItem.GetInspector
With ActInsp
.WordEditor.Characters(1).InsertBefore "testing here"
.Close (olSave)
End With
ForwardMailItem.Close olSave
Next NewMailItem
End Sub

我能够重现您的问题并且上面的代码修复了它。我不确定是否还有必要保存 ForwardMailItem

关于VBA Outlook WordEditor 和.Display 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17763920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com