-2
我有一個帶有多個參數的VBA函數,我需要從Excel表格中獲取,而不是從一個子表格獲取,我如何將輸入分成我需要的參數數量?具有多個參數的功能
例:
Function func(a as double,b as double) as double
'calculations
'some return value
End Function
這是我怎麼一直試圖獲取值:
我有一個帶有多個參數的VBA函數,我需要從Excel表格中獲取,而不是從一個子表格獲取,我如何將輸入分成我需要的參數數量?具有多個參數的功能
例:
Function func(a as double,b as double) as double
'calculations
'some return value
End Function
這是我怎麼一直試圖獲取值:
這是你想要的嗎?
代碼:
Function TestFunction(a As Double, b As Double) As Double
TestFunction = a + b
End Function
Excel工作表:
=TestFunction(A1,B1)
ParamArray
參數
爲
例如,假設func()
應簡單地總結你通過它的參數:
Function func(ParamArray args() As Variant) As Double
Dim i As Long
Dim cell As Range
For i = LBound(args) To UBound(args) '<--| loop through each passed argument
If TypeName(args(i)) = "Range" Then '<--| if the current element is a Range
For Each cell In args(i) '<--| loop through range cells
func = func + cell.Value
Next cell
Else '<--| otherwise
func = func + args(i) '<--| simply process the current argument value
End If
Next i
End Function
是的,但是,當我選擇excel中的單元格,並用逗號分隔參數時,仍然出現錯誤。我希望函數所在的單元格表示該值是錯誤的。我想知道的是,如何手動輸入三個Excel單元格值作爲vba函數的參數。 – spacedout
我對逗號和分歧的區別的理解是,某些語言設置使用一個,而其他語言使用另一個。對於你遇到的問題,我需要知道你正在使用的方程,然而,單元有時被格式化爲文本或其他格式。另一件有時候會出錯的事情是零分情況。你用調試器完成了計算嗎? –