2016-10-15 32 views
1

私はスプレッドシート1の数値(行列)の範囲から逆行列を得るために以下の関数を使用しましたが、エラーが発生しています。逆行列関数の結果が表示されないのはなぜですか?

Dim num As Integer 
Dim instance As WorksheetFunction 

Worksheets("Sheet1").Range("A6").Value = instance.MInverse(Worksheets("Sheet1").Range("A1:B2").Value) 

MsgBox Worksheets("Sheet1").Range("A6").Value 

ありがとうございます!

+0

"エラーが発生しています"とはかなり問題が少ないですが、Range( "A1:B2") 'の' .Value'は何ですか?パラメータの型*がinstance.Mynverseであることを予期していますか?それが単一の値であれば、アドレス文字列は1セルにまたがるはずです。複数のセルの場合は、 '.Value'を削除して' Range'オブジェクトに渡します。 –

+0

取得しているエラーは次のとおりです。実行時エラー '91':オブジェクト変数またはWithブロック変数が設定されていません。 'Range(" A1:B2 ")の' .Value'は、整数を含むセルの範囲です。 'instance.Mynverse'は配列を予期していますので、セルの範囲を渡すとそのトリックを行います。 – Yaichael

+0

'instance'は実際にはインスタンス化されません。これは、何にも等しく設定していないので、 'Nothing'に等しい変数です。とにかく、あなたがそれに割り当てることができる*唯一のものは 'Application.WorksheetFunction'なので、私は何かを 'WorksheetFunction'変数と宣言しても何の意味もありません。 –

答えて

1

このエクセルはCPearson: Introduction To Array Formulasから取られます。

注:ExcelのMinverse関数は値の配列を返しますので、関数は配列式として入力する必要があります。配列数式を入力するには、まず関数結果のセルの範囲を強調表示する必要があります。範囲の最初のセルに関数を入力し、CTRL-SHIFT-Enterを押します。

関連する問題