繁体   English   中英

是否可以在Word字段代码中使用VBA功能?

[英]Is it possible to use VBA functions in Word field codes?

我有一个带有一些功能的Word文档。 我想在公式字段中访问这些函数,但这比预期的要困难。

假设我有一个定义为的函数

Public Function Area(R As Double) As Double
  Area = 3.14 * R * R
End Function

并且我想在一个字段中使用它,就像这样

{ = Area(RadiusBookmark) }

这似乎很简单,但我得到一个语法错误。 如果我省略参数,就像这样

{ = Area }

我收到一个“未定义的书签”错误,这让我相信只有书签可用于公式代码字段。

Word不允许您在字段中使用VBA函数。

一种常见的方法是使用具有DocVariable的字段,并且具有由按钮按下或文档事件触发的一些VBA,其将变量的值设置为函数的结果,然后刷新字段值。

首先,在文档中添加DOCVARIABLE字段:

我的函数返回' DOCVARIABLE MyFuncResult \\* MERGEFORMAT '!

然后添加此VBA:

Option Explicit

Private Function Foo() As String
  Foo = "BAR"
End Function

Public Sub setvar()

  Const MYVAR As String = "MyFuncResult"

  Dim var As Variable

  On Error Resume Next
  Set var = ThisDocument.Variables(MYVAR)
  On Error GoTo 0

  If var Is Nothing Then
    Set var = ThisDocument.Variables.Add(MYVAR)
  End If

  var.Value = Foo

  ThisDocument.Fields.Update

End Sub

您应该将文档内容视为:

我的函数返回'BAR'!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM