Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
Vbscript 动态创建Office Open XML文档:更新Open上的所有字段_Vbscript_Openxml - Fatal编程技术网

Vbscript 动态创建Office Open XML文档:更新Open上的所有字段

Vbscript 动态创建Office Open XML文档:更新Open上的所有字段,vbscript,openxml,Vbscript,Openxml,我正在以编程方式生成一个Office Open XML文档(Word 2007格式),并希望在首次在Word中打开我生成的文档时更新所有字段 当我不久前对此进行研究时,唯一的方法是在文档打开时运行VB脚本。但是VB脚本在默认情况下不会运行,要使其正常工作,用户必须授权脚本,这比要求用户执行“全选,F9”更复杂,因此这无法达到目的 有什么建议吗 Alex你的研究已经显示了正确的结果。使用VBA或任何其他形式的Word自动化是唯一的出路。Word和OpenXML都有一个选项可以在打开时自动更新字段。

我正在以编程方式生成一个Office Open XML文档(Word 2007格式),并希望在首次在Word中打开我生成的文档时更新所有字段

当我不久前对此进行研究时,唯一的方法是在文档打开时运行VB脚本。但是VB脚本在默认情况下不会运行,要使其正常工作,用户必须授权脚本,这比要求用户执行“全选,F9”更复杂,因此这无法达到目的

有什么建议吗


Alex你的研究已经显示了正确的结果。使用VBA或任何其他形式的Word自动化是唯一的出路。Word和OpenXML都有一个选项可以在打开时自动更新字段。

有一种方法可以在没有VB脚本的情况下完成此操作

您可以将该字段设置为脏字段,并在打开文档时进行更新

<w:fldSimple w:instr="TOC" w:dirty="true" />

如果有多个字段,则可以更新文档中的设置,以便在打开文档时更新所有字段

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
    <w:updateFields w:val="true" />
</w:settings>


但是,它们都有一个缺点,即打开文档时会出现一个确认对话框,上面写着“此文档包含可能引用其他文件的字段。是否要更新此文档中的字段?”

@divo很高兴知道。谢谢你的确认。