[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『配列への格納について』(まー)
教えてください。 4万行100列ほどのデータが2つ(シート1、シート2)ありこれを配列に 格納したいのです。1行づつ追加していけばいいのですが時間がかかるので rangeオブジェクトをつかっていっきにほうりこみたいのです。
sub test () Dim rngN as range Dim vv Dim ws as worksheet
for each ws in thisworkbook.worksheets set rngN = Intersect(ws.UsedRange, ws.Range("2:" & Rows.Count)) vv=rngN.value next end sub
とすると当たり前ながら先に格納したシート1のデータがシート2のデータに上書きされてしまします。 どのようにすればよいかご教授ください。
< 使用 Excel:Excel2013、使用 OS:Windows8 >
シートが2つと決まっているのでしたら、Rangeも2つ作れば良いのではないですか?
sub test () Dim rngN as range Dim rngS as range Dim vv Dim ws as worksheet dim ws2 as worksheet set ws = worksheets(1) set ws2 = worksheets(2) set rngN = Intersect(ws.UsedRange, ws.Range("2:" & Rows.Count)) set rngS = Intersect(ws2.UsedRange, ws2.Range("2:" & Rows.Count)) vv=rngN.value end sub
やっつけですが。 (2Win) 2017/03/28(火) 15:34
ざっくりと、2行目以降の使用セルのセル範囲をrngNに設定してますが、 配列処理したいなら、それぞれのシートで、何列まであるデータなのかを、 どこかの行で判定した方が、あとあと、処理しやすいのでは?
(マリオ) 2017/03/28(火) 15:45
2シート分の配列を「一つの配列」に格納したい、と言う質問だと思ったんですけど・・・
> 1行づつ追加していけばいいのですが時間がかかるので
本当なんですかねぇ・・・
2つの配列内、広い方の配列は、取りあえず全データ分の広さで格納し、 狭い方の配列の値を書き足せば、そんなに時間が掛かるとも思えないのですが。
(半平太) 2017/03/28(火) 17:35
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.