しつもおおおおん><;
一つのフォルダ内に格納されているCSVファイルの中身を展開し、
一つのシートに全てのCSVファイルの中身を反映させる というマクロなのですが
QueryTablesを使い、ファイルを読み込み処理している時、
●1
読み込んだデータのA列目が99以上の数値だったとき
そのセルは黄色で塗りつぶし、何も書かず、次のセルから読み込む。
【一つ目のCSVデータ】
A B C D
1 20 12 14 67
2 98 45 12 57
3 67 58 82 91
4 30 64 21 23
【二つ目のCSVデータ】
A B C D
1 99 12 14 67 ←この列は黄色で塗りつぶし、2行目から読み込んでいく
2 98 45 12 57
3 67 58 82 91
4 30 64 21 23
●2
読み込んだデータのA列目が0だった場合、前回読み込んだCSVファイルの最終A列目
を優先し
二つ目のデータの1列目は無視し、2列目から読み込む
【一つ目のCSVデータ】
A B C D
1 20 12 14 67
2 98 45 12 57
3 67 58 82 91
4 30 64 21 23
【二つ目のCSVデータ】
A B C D
1 99 12 14 67 ←この列は無視して2列目から読み込む
2 98 45 12 57
3 67 58 82 91
4 30 64 21 23
というようなマクロを現在作成中なのですが
途中経過として
QueryTablesの中身をこのように作ってみました。
まだVB不慣れなものでこのQueryTablesだとIF文で記述した箇所をスルーして処理を
行ってしまうので
困っております
↓↓
'Dir関数を使って指定フォルダ内csvファイルを順次処理
MyFnm = Dir(MyFol & "*.csv")
Do Until Len(MyFnm) = 0&
i = i + 1
'データエリアを取得してセット先を変更
n = IIf(n = 0, 1, n + n1)
'外部データ取り込みを利用
With .QueryTables.Add(Connection:="TEXT;" & MyFol & MyFnm, _
Destination:=.Range("A" & n))
.AdjustColumnWidth = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 2
'【csvファイルのM列を読み込んだときM列目の1行目が99%以上なら空白黄
文字】
If Range("M1") >= 99 Then
Range("M1").Font.ColorIndex = 3
'【読み込んだcsvファイルでM列目の1行目が0ならば無視して2行目から読
み込む】
ElseIf Range("M1") = 0 Then
.TextFileStartRow = 3
'【読み込んだcsvファイルでM列目の1行目が空白ならば空白のまま】
ElseIf Range("M1") = "" Then
Range("M1").FontColor = 1
Else
End If
.TextFileCommaDelimiter = True
.Refresh False
n1 = .ResultRange.Rows.Count
.Parent.Names(.Name).Delete
.Delete
End With
'次のファイルへ
MyFnm = Dir()
Loop
Sleep (2000)
End With
長々となってしまいましたがご教授よろしくお願いします><;
お礼
ありがとうございました。