如何在word中使用DocVariable域显示文档变量的值?

DocVariable域可以显示通过vba添加给文档的文档变量的值。

DocVariable域的语法如下:

{ DOCVARIABLE "Name" }

其中Name属性为文档变量的名称。

在word vba中 Document对象具有Variables属性,通过该属性,可以往文档中添加任意数量的文档变量,然后就可以在word 文档中通过DocVariable域显示想要显示的变量的值。

但是Document对象的Variables集合不能具有同名的文档变量,所以一般要在添加之前,先删除所有已经存在的文档变量。

以下举例说明了,如何通过添加文档变量,在word文档中显示可以自动更新的前一天的日期:

Private Sub Document_Open()
    Dim oV As Variabled
    Dim oDoc As Document
    Set oDoc = Word.ActiveDocument
    dDate1 = VBA.Format(DateAdd("d", -1, Date), "yyyy年mm月dd日")
    dDate2 = VBA.Format(DateAdd("d", -1, Date), "yyyy-mm-dd")
    With oDoc
        For Each oV In .Variables
            oV.Delete
        Next
        '添加名为PreDate1,值为变量dDate1的文档变量
        .Variables.Add "PreDate1", dDate1
         '添加名为PreDate2,值为变量dDate2的文档变量
        .Variables.Add "PreDate2", dDate2
    End With
End Sub

然后在word文档中添加域代码如下:

即可显示文档变量的值。

       

发表评论