使用函数获取变量的值(将变量从函数传递到子例程)[重复]

Posted

技术标签:

【中文标题】使用函数获取变量的值(将变量从函数传递到子例程)[重复]【英文标题】:Using a function to get the value of a variable (Passing a variable from a function to a subroutine) [duplicate] 【发布时间】:2018-12-24 16:32:31 【问题描述】:

我在 Windows 机器上的 Excel (Office 365) 中使用 VBA。 (我已经发现几乎所有主要的 VBA 函数都不能在 Mac 上运行)。

首先,我向所有说“这个问题已经被问过”的人道歉。也许是这样,但我刚刚在这里呆了一个多小时,找不到答案。

我发现了如何将变量的价值传递给函数,但我不能以其他方式从函数返回子例程。

有一些类似的问题,但答案中的代码远远超出了我的绝对初学者水平,我无法弄清楚。我已经尝试了很多东西,比如使用“Option Explicit”、“Dim”、“Public”和“Private”,但我就是无法让这段代码工作。

所以这里是代码。请问有人可以为我正确地重写它吗?

Sub GetTheValueOfXXX()

      getXXX
      MsgBox XXX
End Sub

Function getXXX()

      XXX = 999
End Function

感谢那些可怜我这个完全新手的人,并向那些认为这就像加1加1的人道歉。

【问题讨论】:

【参考方案1】:
Sub GetTheValueOfXXX()
    Dim x
    x = getXXX()
    Msgbox x
End Sub

Function getXXX()
    getXXX = 999   '<< return a value using the function's name...
End Function

数组:

Sub GetTheValueOfXXX()
    Dim x
    x = getXXX()
    Msgbox x(0)   '>> 999
    Msgbox x(1)   '>> 88
End Sub

Function getXXX()
    getXXX = Array(999, 88, 7) 
End Function

【讨论】:

谢谢蒂姆·威廉姆斯!我看到了差异。您的代码有效。但是,它并没有像我希望的那样完全解决问题。我认为我过于简化了这个问题。你看我正在尝试将 26 个变量的值传回(“AAA”“BBB”,“CCC”,....“ZZZ”)。根据您的代码,看来我必须编写 26 个函数才能做到这一点。有没有一种简单的方法可以在单个 Sub 或 Function 中加载 26 个变量,然后将它们全部传回以在主 sub 中使用? 在上面查看我的编辑

以上是关于使用函数获取变量的值(将变量从函数传递到子例程)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 FORTRAN 子例程中传递不同的变量集

批处理脚本子例程:传递参数

如何让 VBA 子例程调用将数组传递给子例程中的另一个函数的函数

从 Fortran 调用 C 函数,其中 C 函数名称最初是从 C 传入的

如何通过调用函数将数据从视图传递到子视图?

如何将PHP变量从一个函数传递到另一个函数?