[英]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.