- ベストアンサー
セルに多次元配列の値を入力する方法
Dim A as Variant A = Range(Cells(1,1),Cells(10,2)) としてセルのデータを配列変数に格納した場合 Range(Cells(1,2),Cells(10,2)) を Range(Cells(1,3),Cells(10,3)) に入力するとき Aを用いて一発で入力する方法はないですか? 今は For i = 1 to 10 cells(i,3) = A(i,2) Next という方法しか思いつかないのですが時間がかかります。 良い方法があれば教えてください!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Range(Cells(1, 3), Cells(10, 3)).Value = _ Application.Index(A, 0, 2) こんな感じでしょうか。
その他の回答 (3)
- redfox63
- ベストアンサー率71% (1325/1856)
#1です 寝ぼけていたようです m(__)m バリアントの配列なら #2氏の回答でよさそうですよ AをRangeオブジェクトとして Range(Cells(1,3), Cells(10,3)).Value = InterSect(A, Range("B:B")).Value といった具合で ・・・
お礼
返事が遅くなってすみません。InterSectという方法もあるんですね。色々と試してみようと思います。どうもありがとうございました!
- keirika
- ベストアンサー率42% (279/658)
Sub Sample() Dim A As Range Set A = Range(Cells(1, 1), Cells(10, 2)) A.Columns(2).Copy Destination:=Cells(1, 3) End Sub でどうでしょう。
補足
連絡が遅くなってすみません。色々な方法があるんですね。実際に使用しているのはもっと複雑なプログラムになっているので、どれが一番有効か試してみます。どうもありがとうございました!
- redfox63
- ベストアンサー率71% (1325/1856)
Range(Cells(1,3),Cells(10,3)).Value = A で可能だと思います
補足
Range(Cells(1,3),Cells(10,3)).Value = A とすると Range(Cells(1,3),Cells(10,3)) には Range(Cells(1,1),Cells(10,1)) のデータが入ってしまいませんか? Range(Cells(1,2),Cells(10,2)) のデータを入れたいのですが...
お礼
返事が遅くなってすみません。Application.Indexという方法があるんですね。応用で使ってみるとエラーが出てしまうんですが、何とか解消してみます。どうもありがとうございました!