お世話になります。
よしと申します。
CSVファイルをインポートする
と一部のデータが欠落してしまいます。
例
dim a1,a2,a3,a4,a5,Readline as string
Open strCSVF For Input As #intFNo
Line Input #intFNo, Readline
の場合
debug.print Readline
内容
1234,2004/08/24(火),264,22,"1,343,700"
この結果は良いのですが、
Input #intFNo, a1, a2, a3,a4,a5
debug.print a2
2004
で/までの数字のみの取得になります。
2004/08/24(火)の内容でセットするに方法はあるのでしょうか?
ご教授よろしくお願いします。
dim a1,a2,a3,a4,a5,Readline as string とした場合には
Readline のみが string 型で
他は全て Variant 型 になります。
面倒がらずに各変数毎に宣言をして下さい。
例えば
Dim a1 As String
Dim a2 As String
Dim a3 As String
Dim a4 As String
Dim a5 As String
Dim Readline As String
Integer や Long である必要があればそれなりに。
ご回答ありがとうございます。
早速宣言を下記にして実行したのですが、
結果は前回と同じく2004の数字のみセットされます。
ご教授よろしくお願いします。
Dim a1 As String
Dim a2 As String
Dim a3 As String
Dim a4 As String
Dim a5 As String
Dim Readline As String
Open strCSVF For Input As #intFNo
Line Input #intFNo, Readline
の場合
debug.print Readline
内容
1234,2004/08/24(火),264,22,"1,343,700"
この結果は良いのですが、
Input #intFNo, a1, a2, a3,a4,a5
debug.print a2
2004
で/までの数字のみの取得になります。
Input # は、Write #で出力された物を簡易的に読み込むための物であって、
CSVデータを読むための物では無いですよ。
(Write #で出力されるデータは、CSVではありません。似てるけど)
Line Input # を使って、行単位で読み出した後、Split関数で
カンマ毎に切り出せば、とりあえずの目的は果たせるかと。
ただ、「カンマ」や「改行文字」がデータ中に含まれている場合は
この方法でも正しく取得出来まないので、自力でパースしてください。
Split関数でカンマ区切りで変数にセットして可能になりました。
ありがとうございまいした。
ツイート | ![]() |