dポイントプレゼントキャンペーン実施中!

エクセルのVBAで下記のTTESTがエラーになってしまいます。
Cells(8, i + j) = WorksheetFunction.TTest(Range(Cells(i + j, ts1), Cells(i + j, te1)), Range(Cells(i + j, ts2), Cells(i + j, te2)), 2, 2)

ワークシートで直接入れるとちゃんと計算してくれます。=TTEST(BQ2:BQ6,BQ7:BQ34,2,2)
どうしてでしょうか?
配列を設定使って試してみましたが同じでした。
なお、下記のように直接設定しても「:」でエラーになってしまいます。
Range("CN8") = TTest(BP2:BP6,BP7:BP34,2,2)
以上、よろしくお願いします。

「エクセルのVBAでTTESTがエラーにな」の質問画像

質問者からの補足コメント

  • HAPPY

    cellsはだめでしたのRangeに直接変数を代入したら出来ました。
    st1 = Cells(ts1, K).Address(RowAbsolute:=False, ColumnAbsolute:=False)
    en1 = Cells(te1, K).Address(RowAbsolute:=False, ColumnAbsolute:=False)
    hensu = st1 & ":" & en1
    Set r1 = Range(hensu)
    Cells(8, L + i) = Application.WorksheetFunction.T_Test(r1, r2, 2, 2)
    ありがとうございました。

    No.2の回答に寄せられた補足コメントです。 補足日時:2016/10/17 12:35

A 回答 (2件)

いくつか検証してみましたが、


どうやら、マクロの範囲の中での問題のようですね。
TTest でも、間違いはありませんね。

Range(Cells(i + j, ts1), Cells(i + j, te1))
Range(Cells(i + j, ts2), Cells(i + j, te2))

横に長いデータのようですが、
エラー防止は、このようにしてみたらいかがでしょうか。
直接代入するのもよいのですが、物事は単純化して見やすくしたほうが、間違いが見つけやすいです。

Set r1 = Range(Cells(i + j, ts1), Cells(i + j, te1))
Set r2 = Range(Cells(i + j, ts2), Cells(i + j, te2))
If r1.Count <> r2.Count Then
Cells(8, i + j).Value = WorksheetFunction.TTest(r1, r2, 2, 2)
Else
Cells(8, i + j).Value = WorksheetFunction.TTest(r1, r2, 2, 1)
End If
この回答への補足あり
    • good
    • 0
この回答へのお礼

教えていただきありがとうございました。
シンプルにする方法を以下に試してみました。
i+j=68
ts1=2
te1=6
ts2=7
te2=34
Bp=68

○ Set r1 = Range("Bp2:Bp6")
○ Set r2 = Range("Bp7:Bp34")
× Set r1 = Range(Cells(i + j, ts1), Cells(i + j, te1))
× Set r2 = Range(Cells(i + j, ts2), Cells(i + j, te2))
x = Application.WorksheetFunction.T_Test(r1, r2, 2, 2)
MsgBox "x= " & x
結果は、cellsで指定した場合は同じエラーになりましたが、 Range("Bp2:Bp6")のように直接指定した場合はOKでした。
もう少し、御知恵を拝借できないでしょうか?
よろしくお願いします。

お礼日時:2016/10/17 11:20

「WorksheetFunction.TTest」ではなく「WorksheetFunction.T_Test」ではダメですか?(一部の関数は名称が微妙に変わっているようです)


またExcelはExcel2013以降でしょうか?Excel2010以前は未対応みたいです。
https://msdn.microsoft.com/ja-jp/library/office/ …
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
参考にさせていただきます

お礼日時:2016/10/17 11:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!