ExcelのVBAでLinestをサブルーチンで使用する際に問題が発生しました。私はx値の列(行17から始まる列A)とy値の列(行17から始まる列G)の多項式係数(3次または4次)を返す必要があります。ExcelのVBAのLinest多項式回帰
私が現在使用しているコードを以下に示します。
Dim X
X = Application.Evaluate("=linest(g17:g61,A17:A61^{1,2,3})")
Cells(3, 8) = X(1)
Cells(4, 8) = X(2)
Cells(5, 8) = X(3)
Cells(6, 8) = X(4)
本質的に、このサブルーチンを任意の長さのデータで動作させる必要があります。データは常に行17に入力され始めます。これを行うには、以下に示すようなコードを使用しようとしています。私は上記の代わりにG17:G61
と同様の範囲を使用する場合
Range(Cells(i, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)), Range(Cells(i, 2), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 2))
はしかし、私は、型の不一致エラーが発生します。私はなぜ細胞の範囲がフォーマットG17:G61
の細胞の範囲と異なるのか分かりません。私はまたA17:A61
の代わりに単純なRange(Cells(17,1),Cells(61,1))
を使ってみました。
G:17:G61
の代わりに"G" & 17:"G" & 61
を使用してみましたが、閲覧中にいくつか見たことがありますが、それでも問題は解決していないようです。
他にも優れた機能がありますか?
助けてください!
あなたのタイトルは、これはExcelで回帰を行う際の問題であることを示しています。 Excel VBAでのプログラミング範囲の問題です。すでにこのサイトにはたくさんの良いコンテンツがあります。 [This](http:// stackoverflow。com/questions/22202948/using-range-function-excel-with-variables)にはいくつかの簡単な例があります。 – OldUgly
私はそれを使用しようとしている容量(すなわち、より多項式のためのVBA)でLinest関数に関する十分な情報を見つけるのが難しかったので、入力する必要があるものを正確に理解するのに苦労しました。さらに展開できますか? – SilvaAger