ここから本文です

J列の特定顧客コード(111,222,333)以外の行を削除する時 該当コードが存在しなか...

mgm********さん

2017/9/2113:33:48

J列の特定顧客コード(111,222,333)以外の行を削除する時
該当コードが存在しなかった場合に”実行時エラー 1004”で
ストップしてしまいます。エラー回避の方法をご教示ください。

Dim i

As Long
For i = Cells(Rows.Count, "J").End(xlUp).Row To 2 Step -1
If InStr(Cells(i, "J"), "123" Or "456" Or "789") = 0 Then
Rows(i).Delete
End If
Next i

閲覧数:
27
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

2017/9/2113:50:10

原因かどうかわかりませんが、ぱっと見ておかしいのは

If InStr(Cells(i, "J").Value, "111") = 0 And InStr(Cells(i, "J").Value, "222") > 0 And InStr(Cells(i, "J").Value, "333") > 0 Then …
ではないでしょうか?

また、
Dim wk as stringとし

wk=Cells(i, "J").Value
If InStr(wk,"111")=0 And InStr(wk,"222")=0 And …
としたほうが、Ifで止めてデバッグするときわかりやすいです。

質問した人からのコメント

2017/9/21 14:03:00

なるほどです。ありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

Prometheusさん

2017/9/2113:45:18

x = Cells(i, "J").Value
If InStr(x, "123") = 0 And InStr(x, "456") = 0 And InStr(x, "789") = 0 Then

というふうに書かなければなりません。

『「123」も「456」も「789」も存在しなければ』、となります。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる