【发布时间】:2017-02-16 21:02:06
【问题描述】:
我想更新 Sub 中的单个(3 个中的 1 个)变量。
3 个变量已经赋值,但我想更新其中一个变量。
请参阅下面的脚本,了解在不同 Macros 中的 sub 之间传递 strings 的简单示例
在宏 1 中
Sub Sub1()
Text1 = "First Text"
Text2 = "Second Text"
Text3 = "Third Text"
Call Macro2.Sub2(Text1, Text2, Text3)
End Sub
在宏 2 中
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 中创建另一个 sub,然后我可以传递一个 string,然后将它分配给 Public 变量。
如果没有其他方法?
我想到了类似的东西:
Sub Sub3()
SomeText = "New Text"
Call Sub2(r1:=SomeText)
End Sub
【问题讨论】:
-
为什么不使用 Macro2 并为您不想更改的值发送空字符串(或一些奇怪的字符,例如 '###')?然后,您可以在 Macro2 中使用
IF语句来查看哪些值需要更新。或者在 Sub 定义中使用 Optional! -
感谢@MiguelH,您的建议与 R3uK 的回答类似。与 If 语句。然而,只需要在各个点调用一个带有单个变量的子对我来说似乎更有效。