【发布时间】:2014-10-08 21:48:04
【问题描述】:
我在 VBA 中编写了一个函数来根据某些单元格的值返回某个值。我在某个单元格的公式中执行/运行此函数
=MyFunction()
我的问题是,如果函数中使用的单元格(在 VBA 中)发生更改,则具有上述公式的单元格不会自动更新。
如果使用的某些单元格发生更改,如何重新运行或更新或重新执行上述公式?
【问题讨论】:
-
只有在作为参数传递给函数的范围内的单元格发生更改时,Excel 才会刷新工作表公式(包括 UDF)。 Excel 不会解析您的 UDF 源代码以查看它是否需要在发生更改时重新计算您的 UDF。通过 UDF 的参数列表传递输入范围,或者查看将
Application.Volatile添加到 UDF VBA 代码中。 -
好吧,我的 UDF 只返回一个值,它的使用方式与我上面所说的完全一样,不确定这是否是一个问题。另一个问题是,它与正在更改的单元格不在同一个工作表中。
-
我编辑了我的评论 - 希望可以解决问题。
-
它确实清除了一些东西。我对
Application.Volatile的问题是正在更改的单元格不在使用该函数的同一工作表中。我需要做的就是在 UDF 中为需要跟踪任何更改的范围添加一个无用的参数,并且它起作用了!谢谢!
标签: vba excel excel-formula excel-2010