将3个值中的1个传递给一个Sub
我想更新Sub
中的一个(1的3)variables。
这3个variables已经被分配了,但是我想更新一个variables。
请参阅下面的脚本,了解在不同Macros
subs之间传递string
的一个简单示例
在Macro1中
Sub Sub1() Text1 = "First Text" Text2 = "Second Text" Text3 = "Third Text" Call Macro2.Sub2(Text1, Text2, Text3) End Sub
在Macro2中
Public PassedText1, PassedText2, PassedText3 As String Sub Sub2(ByVal r1 As String, ByVal r2 As String, ByVal r3 As String) PassedText1 = r1 PassedText2 = r2 PassedText3 = r3 End Sub '=======================
我知道我可以在Macro2
创build另一个子,然后我可以传递一个string
,然后将其分配给Publicvariables。
如果没有另一种方式?
我虽然是这样的:
Sub Sub3() SomeText = "New Text" Call Sub2(r1:=SomeText) End Sub
如果你像这样定义你的sub,你可以使用你的build议:
Sub Sub2(Optional ByVal r1 As Variant, Optional ByVal r2 As Variant, Optional ByVal r3 As Variant)
所以,2改变了每个参数的Optional ByVal r1 As Variant
:
-
Optional
说明了一切 -
As Variant
因为你需要testing的是参数是存在于你的调用IsMissing()
方法,但为此参数需要被定义为一个变种
所以像这样你的proc中的3个参数:
If Not IsMissing(r1) Then PassedText1 = r1