トップページ > プログラム > 2016年06月24日 > AYTMSqmc

書き込み順位&時間帯一覧

27 位/197 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000000303



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
947
Excel VBA 質問スレ Part41©2ch.net

書き込みレス一覧

Excel VBA 質問スレ Part41©2ch.net
947 :デフォルトの名無しさん[sage]:2016/06/24(金) 22:13:06.84 ID:AYTMSqmc
質問です。
windows7
excel2010

100行ほどのリストがexcelで渡されます。

1行目はフィールド名が20項目ほど並んでいます。
1列1項目。

2行目からはダーッとデータが入っていて、100行目まで。
各セルのデータは入っていたり、空だったり。

「G列からT列まで、セルに何も値が入っていなければ行全体を削除」というプログラムを組んでいます。

データが存在する最終行を取得して、最終行から上に向かって繰り返し処理を行います。

繰り返し処理の内容は
・G〜T列に値が入っているかチェック。チェックして値が入っていなければフラグを立てます。
・フラグが立っていればその行は削除。立っていなければフラグを初期化して次の行へ。

成功したかと思ったのですが、どうしても最後(下から上への処理なのでつまりは2行目)の行が判定されません。
この解決方法を教えていただけたらと思います。
Excel VBA 質問スレ Part41©2ch.net
948 :947[sage]:2016/06/24(金) 22:14:45.53 ID:AYTMSqmc
ソースはこちら。
Dim i As Long

Sub DelRow()

Dim c As Range
Dim blnFlag As Boolean

blnFlag = False

'最終行iから上に進む
For i = ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row To 1 Step -1

'G〜Tを判定。ワイルドカードで検索し何らかの文字があればblnFlagをTrueにする。
For Each c In Range(Cells(i, "G"), Cells(i, "T"))

'値が入っていたらTrue
If c.Value <> Empty Then
blnFlag = True
End If

Next c


If blnFlag = False Then
Range(i & ":" & i).Delete
Else
blnFlag = False
End If
Next i

End Sub
Excel VBA 質問スレ Part41©2ch.net
949 :947[sage]:2016/06/24(金) 22:16:08.97 ID:AYTMSqmc
↑すみません、947の説明で修正。
繰り返し処理は「何かしらの文字があれば」フラグを立てる、でした。

よろしくお願いいたします!


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。