VBA函数返回错误的值
问题描述:
我想通过调用我的VBA代码中的函数为变量赋值。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
现在,我已经解决了这个问题(我希望),请问是什么原因,为什么这个奇怪的一种语法?
答
问题很简单 - 你没有返回一个值。为了从VBA中的函数返回一个值,你需要在代码末尾说出function name = value
(就像说“return xxx”)。由于你没有从函数返回一个值,所以它默认为0.
你在函数本身中用“with”表示什么?你可以发布'readSolOverviewTable'内容吗? (至少相关部分) – smagnan 2014-08-29 07:03:04
请向我们展示'readSolOverviewTable'代码# – 2014-08-29 07:04:46
您可能需要检查[THIS ANSWER](http://*.com/questions/2781689/how-to-return-from-a- vba函数) – 2014-08-29 07:05:38