-1
我想通過調用我的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
現在,我已經解決了這個問題(我希望),請問是什麼原因,爲什麼這個奇怪的一種語法?
你在函數本身中用「with」表示什麼?你可以發佈'readSolOverviewTable'內容嗎? (至少相關部分) – smagnan 2014-08-29 07:03:04
請向我們展示'readSolOverviewTable'代碼# – 2014-08-29 07:04:46
您可能需要檢查[THIS ANSWER](http://stackoverflow.com/questions/2781689/how-to-return-from-a- vba函數) – 2014-08-29 07:05:38