gpt4 book ai didi

excel - VBA 更改值,调用宏。忽视

转载 作者:行者123 更新时间:2023-12-04 20:54:39 27 4
gpt4 key购买 nike

你好堆栈溢出社区!我是 VBA 脚本的主要菜鸟,并认为我有一个简单的问题?我的工作表上有一些简单的代码,每次在特定单元格中更改值时都会调用一个函数。

问题是,该单元格是一个下拉菜单,当您将下拉菜单的选择更改为相同的值时,它仍然运行代码..

需要明确的是,我希望代码在下拉列表更改时运行。只是不是当它“更改”为相同的值时。在下面粘贴我的代码。让我知道您是否可以提供帮助!

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$W$21" Then
Call Financing
End If
End Sub

我在想也许可以添加一个 .ignore 或其他东西?

最佳答案

保持前一个值的静态值并在启动融资子程序之前进行比较。

Private Sub Worksheet_Change(ByVal Target As Range)
static oldW1 as variant
If Target.Address = "$W$21" Then
if target.value <> oldW1 then
oldW1 = Target.value
Call Financing
end if
End If
End Sub

静态变量被声明它们的子过程或函数“记住”。通常,当 Worksheet_Change 完成并退出时,oldW1 将被“忘记”(并被破坏)。但是,对于静态 oldW1,第二次(以及所有后续时间)输入 Worksheet_Change,它会“记住”最后一次使用 oldW1 的值。

这并不意味着静态变量是全局公开的;它仅在声明它的函数或子过程中可用。

关于excel - VBA 更改值,调用宏。忽视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51116307/

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