0

決められた範囲のセルを計算する関数を作成したいと考えています。

Calc の値を Excel に返すと、#VALUE! が返されます。これは、変数の型が異なることを意味します。

Cint(var) を使用しようとしましたが、同じエラーが発生しました。

Cint() を使用しないコードは次のとおりです。

Function CalcTest(Interval As Range) As Integer
    Dim x As Integer
    Dim y As Integer
    x = Interval.Offset(0, 0).Value
    y = Interval.Offset(1, 0).Value
    CalcTest = x + y
End Function

私はすでに試しました:

Function CalcTest(Intervalo As Range) As Integer
    CalcTest = Interval.Offset(0, 0).Value + Interval.Offset(1, 0).Value
End Function

と:

Function CalcTest(Interval As Range) As Integer
    Dim x As Integer
    Dim y As Integer
    x = CInt(Interval.Offset(0, 0).Value)
    y = CInt(Interval.Offset(1, 0).Value)
    CalcTest = x + y
End Function

そして、関数型を宣言せずに:

Function CalcTest(Interval As Range)
    ...
    ...
End Function

そしてExcelでは、ある範囲で関数を呼び出します:

=CalcText(A1:A2)

私は何を間違っていますか?

#

大きな絵:

ここに画像の説明を入力

私がする必要があるのは、$N 列のキー値の出現ごとに $R 列の合計値をカウントする任意の場所にセルを作成することです。

$N Col に「TH」があるたびに、セル内のその行の $R col 値を累積する必要があります。

他の多くの $N 値についても同じです。

このサンプルでは、​​$N の TH の累積セルの値は 25 です。

助けてくれてありがとう!!!

4

3 に答える 3

0

これはあなたがしようとしていることですか?

Public Function CalcTest(rng1 As Range, rng2 As Range) As Variant
    On Error GoTo Whoa

    CalcTest = rng1.Value + rng2.Value

    Exit Function
Whoa:
    CalcTest = "Please check the Range Values"
End Function

Excelセルに、この式を入れてください=CalcText(A1,A2)

ここに画像の説明を入力

于 2013-10-10T17:40:11.427 に答える
0

コードを単純化して、質問を適切に表していないものにしないでください。あなたのコメントと質問から。

Function CalcTest(Interval As Range) As Integer
    Dim x As Range
    CalcTest = 0
    For Each x In Interval
        If IsNumeric(x) Then
            CalcTest = CalcTest + x.Value
        End If
    Next x
End Function

これにより、合計しているものが実際に数値であることを確認できます。

しかし、これはワークシート関数と同じように機能します。

=Sum(Range)

変換しているものが変換可能でない場合、単に値を に変換してIntegerも機能しません。関数にLetter を渡すと、CInt()失敗します。

于 2013-10-10T18:13:26.827 に答える
0

あなたはこの道を自分自身に苦しめています。

これを行 2 のセルに入れ、下にドラッグします。

=SUMIF(N$2:N2,"TH",R$2:R2)
于 2013-10-10T17:41:41.823 に答える