gpt4 book ai didi

Excel 用户定义函数未在单元格更新时调用

转载 作者:行者123 更新时间:2023-12-04 20:48:08 26 4
gpt4 key购买 nike

我有一个用 VBA 编写的用户定义函数,它更新绘制形状的颜色(由三个圆圈组成的交通灯)。工作表单元格中的调用看起来像这样:

setTrafficLight(A1, "Oval 1", "Oval 2", "Oval 3")

其中 A1 是一个包含例如的单元格。 “绿色”或“红色”。其他参数是形状的名称。

我遇到了一个问题,即调用该函数并删除了撤消历史记录(在 Excel 中调用用户定义的函数确实会禁用旧的撤消条目)。为了解决这个问题,我注册了一个空的撤消功能
Application.OnUndo "Undo SetTrafficLight", "undoSetTrafficLight"

在我的 setTrafficLight 函数中, Application.Volatile设置为 False以便每次工作表上的任何值发生更改时都不会调用该函数。但是现在,当 A1 中的输入值发生变化时,甚至不会调用该函数。与 Application.Volatile = True它可以工作,但是撤消无法正常工作。如果我完全删除 Application.Volatile那么更新工作正常,但只能使用一级撤消。

关于如何解决这个问题的任何想法?

最佳答案

使用 Worksheet_Change 怎么样?事件?

像这样的东西:

这应该适用于 A1 单元格,但可以很容易地为其他单元格调整

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 1 Then
Call setTrafficLight
End If
End Sub

关于Excel 用户定义函数未在单元格更新时调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2245098/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com