【发布时间】:2014-10-23 03:47:55
【问题描述】:
我正在尝试通过在我的 VBA 代码中调用函数来为变量赋值。
我的子程序体是这样的:
Sub testSubroutine()
Dim iVal As Integer
iVal = readSolOverviewTable("TOT_MAPS")
Debug.Print "Function readSolOverviewTable returned: " & iVal
End sub
readSolOverviewTable 函数在函数本身中返回正确的值。我已经通过调试功能代码验证过了。
但是子程序代码好像有问题,如下语句:
iVal = readSolOverviewTable("TOT_MAPS")
总是返回 0。
我做错了吗?
Updated:
====================================
我的函数看起来像这样:
Function readSolOverviewTable(searchVal As String) As Integer
Dim retVal As Integer
retVal = -99
' Do some code and assign value to the variable retVal
retVal = 100
Debug.Print "retval is: " & retVal
End Function
正如预期的那样;这正确地将调试输出显示为 100 但是不会反映在子程序调用中。
但是把代码改成这样就一切正常了:
Function readSolOverviewTable(searchVal As String) As Integer
Dim retVal As Integer
retVal = -99
' Do some code and assign value to the variable retVal
retVal = 100
Debug.Print "retval is: " & retVal
readSolOverviewTable = retVal
End Function
现在我已经解决了问题(我希望),这是什么原因以及为什么会出现这种奇怪的语法?
【问题讨论】:
-
with in the function itself是什么意思?你能发布readSolOverviewTable的内容吗? (至少是相关部分) -
请向我们展示
readSolOverviewTable的代码 -
您可能需要检查THIS ANSWER
-
@smagnan 我刚刚检查了一些帖子..并通过在结束函数语句之前再添加一行来使其工作。用详细信息更新了问题。
-
谢谢@mehow 是的,我得到了答案。我是 VBA 新手,来自 java 世界,VBA 语法有点让我失望。