【问题标题】:VB Script, modifying the body of a text whilst maintaining formattingVB 脚本,在保持格式不变的同时修改正文
【发布时间】:2014-10-21 17:19:32
【问题描述】:

我想使用 VBscript 打开一个模板(或 .msg),编辑正文,同时保留格式,最后发送电子邮件。

电子邮件中有一个名为“插入日期”的部分,我想在其中插入日期。

这是我目前拥有的一些代码:

Set ol = CreateObject("Outlook.Application") 
Set msg = ol.CreateItemFromTemplate([location of template file] 

Set doc = msg.GetInspector.WordEditor 

If Not doc Is Nothing Then 
    doc.application.selection.find.execute _ 
        "insert date", , , , , , , , , DateValue(Now() - Weekday(Now(), vbMonday) - 2), wdReplaceAll 
End If 

不幸的是,这并没有替换文本,而只是突出显示了文本,我无法做任何进一步的事情。

另一个相关问题: 我是编码新手,我使用 VBScript 是因为我来自 VBA,在那里我正在做与文档非常相似的事情。看来 VBScript 不仅有限制,而且我觉得它不是很容易使用(可能是因为它不是很强大?) 是否有另一种语言可用于自动化此类事情并与 Outlook 交互? 也许是 Python,但我不确定从哪里开始使用 Microsoft Office 集成。 注意:我确信许多编码语言都可以做到这一点,但我在工作中可以使用的东西受到限制,所以任何不太知名的语言肯定不会被支持:(

【问题讨论】:

    标签: vba vbscript outlook outlook-2010


    【解决方案1】:

    我不知道 vbs(或替代品)....

    但是当你用 Outlook-vba 标记它时,我正在用这段代码做类似的事情:

    mailitem.HTMLBody = Replace(mailitem.HTMLBody, "text old", "text new" & now())
    

    您还可以使用 html-tags 使文本变粗、变大或其他。

    最大

    【讨论】:

    • 您好 Max,感谢您的回复 :) 当我使用此方法时,它可以工作,但由于某种原因会产生双倍行距。它似乎在每行之前和之后添加了空格,并且还删除了一些突出显示。我不确定为什么会发生这种情况,但我不知道如何防止它发生。此外,我不知道如何使用宏将这些部分改回来。原文为RTF格式。
    • 你能帮我上传模板吗? “使用宏”是什么意思-如上所述,我只能在 vba 中提供帮助,而且我几乎是初学者;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多