
あるデータシートのB列に変数と同じものがあったらその行を削除したいです。
ところが下のようなFor文だと、行を削除した後にFor文の行番号が動いてしまうので、削除できないデータが残ってしまいます。
(1,2行目が削除対象行の場合、1行目を削除した時点で2行目が1行目のところにくるのでFor文から外れる)
ループ文をネストさせたりいろいろやってみましたが
上手くいきません。
なにか良い方法は無いでしょうか?
’ラスト行はデータが入っている最後の行
For Each Myrange In シート名.Range("b6:b" & ラスト行)
If Myrange.Value = 変数 Then
nowrow = Myrange.Row
シート名.Rows(nowrow).Delete
End If
Next
No.3ベストアンサー
- 回答日時:
Myrangeをオブジェクト変数にして、上から操作しているのに難があると思います。
こんな感じで如何でしょうか。
Dim nowrow As Long
For nowrow = ラスト行 To 6 Step -1
If Worksheets("シート名").Range("B" & nowrow).Value = 変数 Then
Worksheets("シート名").Rows(nowrow).Delete
End If
Next
No.4
- 回答日時:
>baseにrange("b6")のValueが入っちゃって、…
>range形式の変数がよくわかってません。
Dim base As Range
Set base = Range("B6")
の様にas Rangeで宣言して
Setで代入(?)します。
baseの処は、別にrange("B6")と直打ちしても別にいいですよ。後から変更するときに面倒になるので、変数にしているだけです。
例えば
base.Offset(i).Value
は、
range("B6").Offset(i).Value
と書いても同じです。
No.2
- 回答日時:
最初に最終行位置を求めて最終行から処理すればいいです。
このOKWebでも結構同じ処理のサンプルがあると思います。上から処理する場合、データに空白がないということが判っている場合(つまり空白のデータが来たら終了する場合)には、
例えば、次の様にもできると思います。
Dim base As Range
Dim i
Set base = Range("B6")
i = 0
Do While (base.Offset(i).Value <> "")
Do While (base.Offset(i).Value = 変数)
Rows(base.Offset(i).Row).Delete Shift:=xlUp
Loop
i = i + 1
Loop
ナルホド。最終行からが定石なんですねー
これをコピーして試したところ、
baseにrange("b6")のValueが入っちゃって、
offsetが上手く動かなかったです。
すみません。range形式の変数がよくわかってません。
参考になりました。有難うございました。

No.1
- 回答日時:
行の頭から行くからそうなるのです。
行削除は最終行からUPするのが通常です。
多忙のため,参考URLだけで失礼します。
参考URL:http://members.ld.infoseek.co.jp/nkworks03/Excel …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
空白のはずがSUBTOTAL関数でカ...
-
同じ名前(重複)かつ 日本 ア...
-
【マクロ】数式を入力したい。...
-
if関数の複数条件について
-
excel
-
Excelで4択問題を作成したい
-
エクセルシートの見出しの文字...
-
表計算ソフトでの様式の呼称
-
空白処理を空白に
-
【マクロ 画像あり】Exact関数...
-
エクセルでフィルターした値を...
-
【マクロ】既存ファイルの名前...
-
勤怠表について ABS、TEXT関数...
-
【マクロ】実行時エラー '424':...
-
Excel 複数のセルが一致すると...
-
Excel 日付の表示が直せません...
-
【マクロ画像あり】❶1つの条件...
-
【マクロ】【画像あり】4つの...
-
【マクロ】【相談】Excelブック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定した箇所がずれる
-
Yシャツ等の名称や、その他分か...
-
EXCELのマクロ :再帰的...
-
クレジットの分割払いについて
-
クレジットカードなのことなの...
-
80万の中古車を分割払いで買う...
-
自動車税は利息なしの分割払い...
-
ジャニーズ 当選後に姓の変更
-
振込みのときって、振り込んだ...
-
ドスパラのパソコンに於けるロ...
-
実質年率と分割払い手数料の違い
-
ドスパラで75万円のパソコンを...
-
JCBカードwで分割払いにしたい...
-
こんな物価高の世の中 分割払い...
-
教えてください。 ローソンチケ...
-
助けてください。偽名を使った...
-
クレジットカード 分割払いの枠...
-
HiGH&LOW the LIVEのチケット...
-
ペイディ リアルカードの、分割...
-
GENERATIONSのライブチケットに...
おすすめ情報