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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了电子邮件 - 如何将光标放在正文的末尾?相关的知识,希望对你有一定的参考价值。

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

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

答案

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

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

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

SendKeys "{Tab}{End}", True

完整示例:

Public Sub CreateNewMessage() Dim objMsg As MailItem Set objMsg = Application.CreateItem(olMailItem) With objMsg .To = "fake@example.com" .CC = "other@example.com" .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/

另一答案

这一行:

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

以上是关于电子邮件 - 如何将光标放在正文的末尾?的主要内容,如果未能解决你的问题,请参考以下文章

将光标放在 UITest 下 UITextView 的末尾

使用 JavaScript 将光标放在文本输入元素中的文本末尾

为啥将脚本标签放在正文标签的末尾是好的?

JavaFX:在进入 TextArea 时将插入符号/光标放在 TextArea 的末尾

如何让光标跳到一行的最后一个字符?

Summernote - 在焦点上,在编辑器末尾插入光标