使用函数获取变量的值(将变量从函数传递到子例程)[重复]
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 中使用? 在上面查看我的编辑以上是关于使用函数获取变量的值(将变量从函数传递到子例程)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何让 VBA 子例程调用将数组传递给子例程中的另一个函数的函数