gpt4 book ai didi

excel - 如何将目标传递给 Excel 事件中的另一个宏?

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

如何将目标传递给 Excel 事件中的另一个宏?出于优雅的目的,我想使用以下结构,该结构现在不起作用。
Private Sub Worksheet_Change(ByVal Target As Range)
GoToAnotherMacro(Target)
End Sub

Sub GoToAnotherMacro(Target)
'here my code where I can use Target i.e:
MsgBox "value: " & Target.Value
End Sub

最佳答案

我建议使用全局变量:

1)定义一个全局变量:

Dim RangeSupp As Range

2) 在您的过程中,将本地 Target 传递给您的全局变量
Private Sub Worksheet_Change(ByVal Target As Range)
Set RangeSupp = Target
GoToAnotherMacro RangeSupp
End Sub

3)在你的其他宏中享受你的目标
Sub GoToAnotherMacro(Target As Range)
MsgBox Target.Value
End Sub

注意:全局变量放在所有代码之上,在任何其他函数或子之外。即使在宏的单个范围之外,全局变量也会保留在堆栈中。这就是您能够将全局变量从宏传递给另一个的原因。另一方面,现在你不能(你得到“需要对象错误”),因为 Target对象,一旦在 Worksheet_Change 中超出其范围, 从堆栈中删除,因此它恢复为默认值( Nothing ),导致您在上面的代码中遇到问题。

关于excel - 如何将目标传递给 Excel 事件中的另一个宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27523374/

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