2016-11-05 13 views

答えて

0

はこれが何をしたいです:

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 

エクセルシート:

=TestFunction(A1,B1) 
+0

はい、しかし、Excelでセルを選択し、パラメータをカンマで区切っても、私はまだエラーが発生します。関数を入れたいセルは値が間違っていると言います。私が知りたいことは、vba関数のパラメータとして3つのExcelセル値を手動で入力する方法です。 – spacedout

+0

カンマとシミコロンの違いについて私が理解することは、言語設定の中には1つを使用するものと、他の言語設定は1つを使用することがあることです。あなたが遭遇している問題について、私はあなたが使用している方程式を知る必要がありますが、セルは時にはテキストまたは別の形式としてフォーマットされます。もう一つは、時には間違っているのは、ゼロ除算の状況です。あなたはデバッガを使って計算を進めましたか? –

2

あなたはあなたが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 
関連する問題