gpt4 book ai didi

vba - 是否可以在Word域代码中使用VBA函数?

转载 作者:行者123 更新时间:2023-12-02 09:48:46 25 4
gpt4 key购买 nike

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

假设我有一个函数定义为

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

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

{ = Area(RadiusBookmark) }

这看起来很简单,但我遇到了语法错误。如果我省略参数,就像这样

{ = Area }

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

最佳答案

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

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

首先,将 DOCVARIABLE 字段添加到您的文档中:

My function returns ‘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

您应该看到文档内容为:

My function returns ‘BAR’!

关于vba - 是否可以在Word域代码中使用VBA函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39364982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com