如何确定一个宏是否被excel中的另一个宏调用,并相应地执行代码
这只是我想做的一个例子。我有一个复杂的宏,我想做不同的事情,这取决于它是否被另一个宏调用如何确定一个宏是否被excel中的另一个宏调用,并相应地执行代码,excel,vba,Excel,Vba,这只是我想做的一个例子。我有一个复杂的宏,我想做不同的事情,这取决于它是否被另一个宏调用 sub Example() Call MyCode end sub sub MyCode() If Called by Example GoTo SkipNextLine Do these things exit sub SkipNextLine: Do other things end sub 一种简单的方法是使用参数和参数 Sub Example() Call MyCode("Example
sub Example()
Call MyCode
end sub
sub MyCode()
If Called by Example GoTo SkipNextLine
Do these things
exit sub
SkipNextLine:
Do other things
end sub
一种简单的方法是使用参数和参数
Sub Example()
Call MyCode("Example")
End Sub
Sub Example2()
Call MyCode("Example2")
End Sub
Sub MyCode(Origin as String)
Select Case Origin
Case "Example"
'Do stuff here
Case "Example2"
'Do other stuff here
End Select
End Sub
一种简单的方法是使用参数和参数
Sub Example()
Call MyCode("Example")
End Sub
Sub Example2()
Call MyCode("Example2")
End Sub
Sub MyCode(Origin as String)
Select Case Origin
Case "Example"
'Do stuff here
Case "Example2"
'Do other stuff here
End Select
End Sub
您可以创建隐藏名称(实际上,它与范围无关)。将其视为全局变量。全局变量和此名称之间的区别在于,当您关闭工作簿时,该名称将保留在工作簿中。当您再次打开工作簿时,无需任何初始化即可开始使用它。作为奖励,此名称不会显示在名称管理器中。名称的定义只需要一次
Sub SetHiddenName()
Names.Add Name:="Caller", RefersTo:="StartValue", Visible:=False
End Sub
Sub FF()
Names("Caller").Value = "FF"
Call SS
End Sub
Sub SS()
Select Case [Caller]
Case "FF": MsgBox "Called by FF" '...
Case "ZZ": MsgBox "Called by ZZ"
End Select
End Sub
您可以创建隐藏名称(实际上,它与范围无关)。将其视为全局变量。全局变量和此名称之间的区别在于,当您关闭工作簿时,该名称将保留在工作簿中。当您再次打开工作簿时,无需任何初始化即可开始使用它。作为奖励,此名称不会显示在名称管理器中。名称的定义只需要一次
Sub SetHiddenName()
Names.Add Name:="Caller", RefersTo:="StartValue", Visible:=False
End Sub
Sub FF()
Names("Caller").Value = "FF"
Call SS
End Sub
Sub SS()
Select Case [Caller]
Case "FF": MsgBox "Called by FF" '...
Case "ZZ": MsgBox "Called by ZZ"
End Select
End Sub