2016-07-22 5 views
0

お時間をいただきありがとうございます!Excel VBA:可変サイズの2次元配列をユーザーが選択した範囲に渡す

したがって、私のコードは、配列に渡されるデータを含む範囲をユーザーが選択できるように設計されています。私はdo whileループを使ってデータを操作し、それを新しい配列に渡します。そのサイズは最初のサイズの関数です。

私がしたいのは、ANOVAテーブルの開始点などを識別できるように、この新しい配列の宛先範囲の左上になるセルをユーザーが選択できるようにすることです。

私は、ユーザーがセルを選択するためにApplication.Inboxを使用しようとしていましたが、それは機能していません。ループが発生した

'Allocate Array 
arrayCustNum = Application.InputBox("Select Customer Number Range", "Customer Range", Type:=8) 
arrayData = Application.InputBox("Select Data Range (no headers or cust numbers)", "Data Range", Type:=8) 
arrayDataHeader = Application.InputBox("Select Data Header Range", "Data Header Range", Type:=8)  

'Allocate Destination Array 
ReDim arrayDest(UBound(arrayData, 1) * UBound(arrayData, 2) + 2, UBound(arrayData, 2)) 

、その後、我々は出力に移動します:

Set rngPos = Range(Application.InputBox("Event Table will be size (" & UBound(arrayDest, 1) & _ 
", " & UBound(arrayDest, 2) & "). Choose the top left cell of desired location.", _ 
"Output Location", Type:=64)) 

rngPos.Resize(UBound(arrayDest, 1), UBound(arrayDest, 2)).Value = arrayDest 

エラーは単に「400」は言うことをスローされ

は、ここで私が持っているもの、一般的です

あなたの入力を気に入ってください!

答えて

0

タイプ64arrayです。範囲を返すには、アドレスをパラメータとしてRange関数に渡します。

Set rngPos = Range(Application.InputBox("Event Table will be size (" & UBound(arrayDest, 1) & _ 
", " & UBound(arrayDest, 2) & "). Choose the top left cell of desired location.", _ 
"Output Location", Type:=8).Address) 
+0

'Application.InputBox(...、Type:= 8)'は範囲参照を返します。 Set rngPos = Range(InputBox(...、Type:= 8).Address) 'は無意味です。' set rngPos = InputBox(...、Type:= 8) 'を使うだけです。 –

関連する問題