|
データ件数が10万件を超えるCSVファイルがあります。
11,ab,aba,bba・・・
11,ab,abb,bab
11,ab,abc,bbc
12,ba,baa,bbb
12,ba,baa,bbc
13,ca,cab,ccc
・・・
CSVファイルは上記のように、1列目が同じデータがいくつか続きます。
ここから1列目のデータが変わる最初の行のみデータを取り出し、エクセルファイルに書き込みます。
11,ab,aba,bba・・・
12,ba,baa,bbb
13,ca,cab,ccc
・・・
現在はInputを使用して実行していますが、件数が多いため処理に時間がかかります。
コードの一部です。
intFF = FreeFile
iWt = 1
Open ThisWorkbook.Path & "\tmp.csv" For Input As #intFF
Do Until EOF(intFF)
Input #intFF, sCon(1), sCon(2), sCon(3), sCon(4), sCon(5), sCon(6), sCon(7), sCon(8), _
sCon(9), sCon(10), sCon(11), sCon(12), sCon(13), sCon(14), sCon(15)
If Not sCBF = sCon(1) Then '1列目)が変わったら書き込む
For iCt = 1 To 8 '8まで取り込む
Cells(iWt, iCt).NumberFormatLocal = "@" '取込先のセル書式を文字列にする
Cells(iWt, iCt) = sCon(iCt)
Next iCt
sCBF = sCon(1) '比較用
End If
Loop
Close #intFF
処理をデータベースクエリで行ったら、早くなるような気がするのですが、方法が分かりません。
ご教授願えれば幸いです。
(Win2000/Excel2002)
|
|