无论如何,我可以为函数中的单元格分配值/名称吗?
谢谢
编辑
抱歉不清楚,这是我的要求。
我有一个用户定义的函数 (=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/