電子書籍の厳選無料作品が豊富!

質問ですシートに値の一覧が複数あります。それを条件に基づいて行を削除したいです。
条件ですが画像の2行目、3行目のようにa2、b2、c2、a3、b3、c3セルの内容が同じでd2が空白、d3は文字が入っています。この2行がペアでe列が両方okなら合格で5行目、6行目のように片方にngがあればそのペアは不合格です。この条件でシートに一覧で並んでいるものを振り分けて不合格ならそのペアの両方の行を削除するVBAを作りたいです。初めはngを検索して削除していたのですがそれだとokが残ってしまいますがペアで揃って合格なので一つだけしかないものも削除したいです。
説明が難しいのとヘタでわかりにくいと思いますが、理解してくださった方おられれば教えて下さい

「vba 削除」の質問画像

A 回答 (3件)

合格条件の一つに「d2.3セルの片方に文字」とありますが、d8.9は両方に文字が入っているのに合格になってますよ。


考え方としては、表を下から見ていって、最初の行を合格候補として行番号を覚えておいて、その上の行と比較して不合格なら行削除して上の行を新たな合格候補とする、合格なら「合格」と記入して2つ上の行を新たな合格候補とする、でいいと思います。上から見ていってもいいですが、行削除すると行番号が変わるので、下から見た方が考えやすいと思います。
    • good
    • 1

> めはngを検索して削除していたのですが


> それだとokが残ってしまいますがペアで揃って
> 合格なので一つだけしかないものも削除したいです。

そのうまく動かなかったソースコードを見せて下さい。
    • good
    • 1

こんばんは



残念ながら、どういう基準で削除するのかよくわかりません。

例えば、
>不合格ならそのペアの両方の行を削除するVBAを作りたいです。
とありますが、8~10行目は3つでひと組(?)のようにも見えますし、
その場合は3行を削除するってことでしょうか?

そもそも、ペア(あるいは組?)の区別はどのようにするのかなぁ・・
空白行があるまでの連続行がひとまとまりと考えるのかなどなど・・


質問者様には基準がわかっているのでしょうから、「NG」とは別に、削除か否かををI列にでも関数で出しておいて、削除対象の行だけまとめて削除すれば宜しいのではないでしょうか。
この手順なら、VBAを用いなくても、フィルター機能等を利用して削除対象をまとめれば、一括削除することも可能と思います。
    • good
    • 1
この回答へのお礼

返信ありがとうございます。説明下手ですいはません。まず実際は空白行はなく連続で並んでいます。
ペアの区別ですが画像の一番上がそうなのですがa2.3セル、b2.3セル、c2.3セルの内容が一緒でd2.3セルの片方に文字(画像では仮に”あ”といれています)e2.3セルどちらもokこれら全ての条件が揃っているペアが合格でそれ以外は削除したいです。

お礼日時:2024/06/05 06:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A