gpt4 book ai didi

vba - 将 3 个值中的 1 个传递给 Sub

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

我想更新 Sub 中的单个(3 个中的 1 个)变量.

已经分配了 3 个变量,但我想更新其中一个变量。

有关传递 string 的简单示例,请参见下面的脚本不同 Macros 中的子之间的 s

在宏 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 中创建另一个子目录然后我可以通过 string然后将其分配给 Public 变量。

如果没有别的办法?

我想像这样的东西:
Sub Sub3()

SomeText = "New Text"

Call Sub2(r1:=SomeText)

End Sub

最佳答案

如果你像这样定义你的子,你可以使用你建议的:

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

  • 因此,对于 proc 中的 3 个参数,就像这样:
    If Not IsMissing(r1) Then PassedText1 = r1

    关于vba - 将 3 个值中的 1 个传递给 Sub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33496517/

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