首页  >  文章  >  后端开发  >  Excel UDF 可以修改其他单元格吗?

Excel UDF 可以修改其他单元格吗?

DDD
DDD原创
2024-11-20 01:14:03722浏览

Can Excel UDFs Modify Other Cells?

Excel UDF:克服数组输出中的限制

Excel 用户定义函数 (UDF) 通常返回一个标量值,但是如果您需要 UDF 来修改其他单元格吗?这是具有挑战性的,因为明确禁止 UDF 更改任何单元格、工作表或工作簿属性。

可能吗?

与普遍看法相反,有可能尽管通过复杂的解决方法来完成此任务。通过利用 Windows 计时器和 Application.OnTime 计时器的组合,我们可以绕过这些限制。

了解解决方法

Windows 计时器是从 UDF 内部启动的。然而,它的功能仅限于调度Application.OnTime计时器。经过 Excel 批准的 Application.OnTime 计时器仅在没有编辑单元格且没有打开对话框时才安全执行。

实现

实现此解决方法,将以下代码放入常规模块中:

[代码如下这里]

详细说明

  1. AddTwoNumbers UDF:

    • UDF 计算两个数之和。
    • 它也缓存调用者的单元格引用并启动 Windows 计时器来触发后续任务。
  2. AfterUDFRoutine1:

    • 此计时器例程停止 Windows 计时器。
    • 然后它使用安全计时器。
  3. AfterUDFRoutine2:

    • 此计时器例程由 Application.OnTime 计时器触发。
    • 它执行 UDF 中不允许的任务,例如修改其他单元格

结论

虽然 Excel 限制 UDF 直接更改单元格,但此解决方法提供了一种解决方案。通过依次使用 Windows 计时器和 Application.OnTime 计时器,您可以克服这些限制,并使您的 UDF 能够执行原本不可能执行的操作。

以上是Excel UDF 可以修改其他单元格吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn