我想更新Sub
中的单个(1/3)变量。
已经分配了3个变量,但我想更新其中一个变量。
请参阅下面的脚本,了解在不同string
Macros
的简单示例
在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
中创建另一个子,然后我可以传递string
,然后将其分配给Public变量。
如果没有别的办法吗?
我虽然喜欢:
Sub Sub3()
SomeText = "New Text"
Call Sub2(r1:=SomeText)
End Sub
答案 0 :(得分:2)
如果您像这样定义您的子,您可以使用您的建议:
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
因为你需要测试的是你的调用中使用IsMissing()
方法存在的参数,但是为此需要将参数定义为Variant < / p>
对于你的过程中的3个参数,就像这样:
If Not IsMissing(r1) Then PassedText1 = r1