
No.2ベストアンサー
- 回答日時:
一例です。
Sub test01()
Dim i As Long
For i = Cells(Rows.Count, "C").End(xlUp).Row To 1 Step (-1) 'C列入力最下行から1行目まで
If Cells(i, "C").HasFormula Then 'もし数式であれば
If Cells(i, "C").Value = 0 Then 'もし計算結果が0であれば
Cells(i, "C").EntireRow.Delete 'その行を削除
End If
End If
Next '繰り返す
End Sub
50行目であろうが100行であろうが自動的に判断します。
判断不要でかならず50行なら
For i = 50 To 1 Step (-1) でも可。
行削除の場合、下から上に上っていくのがポイントです。
No.3
- 回答日時:
こんにちは。
>合計が0(A,B列に数値が入力されていない)の行を削除する
という意味がA=10 B=-10の行は削除しないと言うことであればC列で判断をすると結果が異なります。
方法はいくつもあるかと思いますが私の場合は以下のようなコードにします。
Sub Sample()
Dim I As Integer
I = 1
Do While Range("C" & I).Value <> ""
If Len(Range("A" & I).Value & Range("A" & I).Value) = 0 Then
Range(I & ":" & I).Delete Shift:=xlUp
Else
I = I + 1
End If
Loop
End Sub
ループ1つにしても方法が色々あるかと思いますがオートフィルタを使用している環境の場合はDo While の方が誤作動を防止できます。
No.1
- 回答日時:
こんな方法もあるという感じで・・・
Sub test()
Dim r As Range, rr As Range
Set rr = Nothing
For Each r In Range("c1:c50")
If r.Value = 0 Then
If rr Is Nothing Then
Set rr = r
Else
Set rr = Union(rr, r)
End If
End If
Next r
rr.EntireRow.Delete
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
すべてのシートを選択してエク...
-
Excelのデータが重いのはなぜで...
-
ローマ字入力で「トゥ」を入力...
-
SUM関数の範囲に#N/Aが...
-
1点の辻の字に変換したいがエク...
-
スマホの小文字gについて
-
word の文字入力 文字が青色に...
-
上のハイフンの打ち方
-
「未使用」と「不使用」ってど...
-
Excelでエラー(#N/Aなど)値を...
-
西暦の2桁表記に使うアポスト...
-
事務用コピー機がエラー表示で...
-
タイムカードに印刷出来るプリ...
-
コマンドプロンプトで表示が多...
-
iMacキーボードの入力 小文字の...
-
インスタの設定について。 イン...
-
デジカメでライトエラー、デー...
-
ネットカフェから、メールでき...
-
コマンドプロンプトが実行中か...
-
エクセルで0.0と表示したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
すべてのシートを選択してエク...
-
Excelのデータが重いのはなぜで...
-
指定範囲内の文字列をつなげる...
-
コンボボックスに入力した文字...
-
エクセル 条件付でセルを非表...
-
エクセルの関数について質問で...
-
エクセルVBAでVLOOKUP自動参照表示
-
Excel VBA テキストボックスを...
-
エクセルで時刻を自動入力する方法
-
VBAに関する質問です。
-
エクセルマクロでの行挿入
-
《エクセル2000》複数条件の合...
-
大きい順に並べかえたい。 ので...
-
行数を指定するマクロ VBA
-
エクセル2013VBA Changeイベン...
-
Excel VBA 答えが0になってし...
-
ある列に51個以上の入力があっ...
-
エクセルで既に入力済みの大量...
-
EXCEL VBA 区切り位置のプログ...
-
エクセルで30日以内に同内容の...
おすすめ情報