电子邮件 - 如何将光标放在正文的末尾?

问题描述 投票:0回答:3

我正在使用Working with current open email这个问题的答案(即代码)来逐步建立一个电子邮件。每次运行宏时,它都会在打开的电子邮件的现有正文文本中添加一段正文。问题是,如果我在宏“运行”之间手动对电子邮件进行一些更改,那么在下次运行时,宏将插入新的正文文本构建块,我离开了光标。但我希望宏总是在现有(和扩展)正文文本结束后添加新的正文文本。更具体地说,这意味着我(可能)在代码“oSelection.InsertAfter myText”(请参阅​​上面链接中的代码)之前需要一些代码,将光标(插入点)移动到打开的电子邮件的末尾我正在与之合作。

我试图使用SendKeys命令,但使用它我只设法将光标发送到excel工作簿表的末尾,我有宏按钮。我希望光标改为打开电子邮件的结尾!

vba excel-vba email excel
3个回答
0
投票

好的,所以我终于明白了:

  If oInspector.IsWordMail Then
            With NewMail
             .Display
             SendKeys "^+{END}", True
             SendKeys "{END}", True
             SendKeys "{NUMLOCK}"
            End With

0
投票

宏将光标留在主题字段中。这会将光标向下移动到正文中,并将其移动到行尾:

SendKeys "{Tab}{End}", True

完整示例:

Public Sub CreateNewMessage() Dim objMsg As MailItem Set objMsg = Application.CreateItem(olMailItem) With objMsg .To = "[email protected]" .CC = "[email protected]" .BCC = "" .Subject = "Test email for you" .Categories = "" .VotingOptions = "" .BodyFormat = olFormatPlain ' send plain text message .Body = "Thank you for your submission. " .Display SendKeys "{Tab}{End}", True End With Set objMsg = Nothing End Sub

参考文献:

http://www.slipstick.com/developer/create-a-new-message-using-vba/


0
投票

这一行:

SendKeys "{Tab}{End}", True

在我的电子邮件正文的开头留下了一个不活动的光标。通过手动标签,我注意到光标在From,To,CC,BCC等字段中移动。它花了11个标签,1个End将光标移到我电子邮件中的一行文本的末尾。虽然看起来很傻,但我编写了额外的标签,它工作得很好。

With Mess
    .Display
    .Sensitivity = 3
    .To = Recip
    .bcc = "redacted recipient"
    .subject = subject
    .Attachments.Add Path & fileName & ".pdf"
    .HTMLBody = strbody & "<br>" & .HTMLBody
SendKeys "{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{Tab}{End}", True
© www.soinside.com 2019 - 2024. All rights reserved.