Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba VB脚本,在保持格式的同时修改文本正文_Vba_Vbscript_Outlook_Outlook 2010 - Fatal编程技术网

Vba VB脚本,在保持格式的同时修改文本正文

Vba VB脚本,在保持格式的同时修改文本正文,vba,vbscript,outlook,outlook-2010,Vba,Vbscript,Outlook,Outlook 2010,我想使用VBscript打开一个模板(或.msg),编辑正文,同时保留格式,最后发送电子邮件 电子邮件中有一个名为“插入日期”的部分,我想在其中插入日期 以下是我目前拥有的一些代码: Set ol = CreateObject("Outlook.Application") Set msg = ol.CreateItemFromTemplate([location of template file] Set doc = msg.GetInspector.WordEditor If Not

我想使用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集成。 注意:我相信许多编码语言都能做到这一点,但我在工作中只能使用这些语言,因此任何不太知名的语言都肯定不受支持:(

我不知道vbs(或替代方案)

但是,当您使用outlook vba标记此代码时,我正在使用此代码执行类似的操作:

mailitem.HTMLBody = Replace(mailitem.HTMLBody, "text old", "text new" & now())
您还可以使用html标记将文本设置为粗体、较大或其他形式


Max

你好,Max,谢谢你的回复:)当我使用这种方法时,它是有效的,但由于某种原因它会产生双行距。它似乎在每行前后都添加了空格,并且还删除了一些高亮显示。我不知道为什么会发生这种情况,但我不知道如何防止它发生。此外,我不知道如何用宏更改这些部分。原文是RTF格式的。你能帮我把模板上传到哪里吗?“使用宏”是什么意思?正如前面提到的,我只能在vba中提供帮助,在那里我几乎是个初学者;-)