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

标签 vba excel

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

谢谢

编辑

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

我有一个用户定义的函数 (=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/

相关文章:

vba - 从VBA读取注册表子项

javascript - jqgrid 支持导出到 excel "out of the box"还是我需要编写一些服务器端代码?

excel - onclick 将宏绑定(bind)到 Excel 单元格?

vba - VBA中 'Range.Parent'和 'Range.Worksheet'有什么区别?

vba - 调用 VBA Shell 函数但没有任何反应

r - 列表成矩阵

c# - 如何在c#中将pdf文件转换成excel

ruby-on-rails - 如何在 Ruby on Rails 中获取所选文件的完整路径?

vba - 将字符串写入 Excel 单元格

regex - 使用 RegEx 和 Replace 在 MS-Access 中使用 USPS 缩写更新地址字段