【发布时间】:2012-09-19 19:43:46
【问题描述】:
我在 VBA 中有一个 UDF(用户定义函数),需要修改 Excel 上的单元格范围。
由于 UDF 无法做到这一点,我尝试使用事件调用。
当我引发自定义事件并尝试写入单元格时,我收到 #Value 错误。另一方面,应用程序事件,例如
Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range) 可以写入单元格。
我的问题是如何通过调用 UDF 来更新其他单元格?
【问题讨论】:
-
修改单元格范围是什么意思?你到底想做什么?
-
你说的函数不能做到这一点是什么意思?
-
函数不能修改单元格,对吗?它们只能返回值,但是当我们希望函数执行实际修改单元格时,我们通过从可以写入单元格的 App_SheetChange 之类的应用程序事件中获得帮助来发挥作用。现在,我想使用我自己的事件(比如 PrintGrid)而不是使用应用程序事件,但我的测试显示自定义事件处理程序在尝试修改 Excel 单元格时会引发错误。所以我的问题 - 是否可以从使用 RaiseEvent 的函数手动触发的自定义事件处理程序修改 excel 单元格
-
我想说 VBA 函数可以以任何你想要的方式修改单元格。同样,
modify cell range on Excel是什么意思?您想对单元格范围做什么?请描述您想做什么,如果您真的需要,我们会处理这些事件(听起来过于复杂)。 -
@DanielCook 从工作表调用的 UDF 可以修改工作表 - 但它很复杂。 stackoverflow.com/a/8711582/641067