gpt4 book ai didi

VBA为函数内的单元格赋值?

转载 作者:行者123 更新时间:2023-12-04 20:48:08 26 4
gpt4 key购买 nike

无论如何,我可以为函数中的单元格分配值/名称吗?

谢谢

编辑

抱歉不清楚,这是我的要求。

我有一个用户定义的函数 (=MyFunction()) 可以从 Excel 表中调用。因此,我还有一个菜单按钮,当用户单击按钮时,我需要在其中调用 =MyFunction() 的所有函数。

我的计划是在 MyFunction() 内部,为调用单元分配一个名称引用并将其存储在 vba 中。所以我可以有一个单元格名称数组。然后我可以在单击菜单按钮时调用这些单元格引用。

请帮助我实现这一目标。有没有更好的方法来保存单元格引用?

最佳答案

编辑:

啊,现在我明白了。
最简单的方法是制造一个虚假的论点:MyFunction(ByVal r As Variant) ,并且,每当您在工作表上使用此函数时,提供与参数完全相同的单元格:=MyFunction(A1) .单击菜单项时,将 A1 中的值更改为任何值,所有 MyFunctions 将重新计算。

或者,您可以使用 Application.Volatile在函数体中。这样,每次更改任何打开的工作簿中的任何单元格时,它都会重新计算。

您也可以使用模块级集合来存储引用,但 Excel 有时只是重置项目,从而丢失模块级变量。如果你有足够的勇气尝试:

Option Explicit

Private RefsToCalculate As New Collection

Public Function MyFunction() As Long
Static i As Long

i = i + 1
MyFunction = i

If TypeOf Application.Caller Is Excel.Range Then
On Error Resume Next
RefsToCalculate.Add Application.Caller, Application.Caller.Address
On Error GoTo 0
End If
End Function

Public Sub MenuButtonClicked()
Dim i As Long

For i = 1 To RefsToCalculate.Count
RefsToCalculate(i).Dirty
Next
End Sub

关于VBA为函数内的单元格赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2302938/

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