我有一个带有一些功能的Word文档。我想在公式字段中访问这些函数,但这比预期的要困难。
假设我有一个定义为
的函数Public Function Area(R As Double) As Double
Area = 3.14 * R * R
End Function
我希望在一个字段中使用它,比如
{ = Area(RadiusBookmark) }
这看起来非常简单,但我收到语法错误。如果省略参数,就像这样
{ = Area }
我收到“未定义的书签”错误,这让我相信只有书签可用于公式代码字段。
答案 0 :(得分:0)
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'!