
下記VBAは特定の行だけ取り出すために組んだマクロの一部ですが、
なぜか.Value Like "W*"の部分が実行されません、
ORの前と後ろを逆にするとやはり前だけしか実行されません。
どこが問題なのでしょうか?
また、"J*"か"W*"以外の行を削除するという文はどう書くのでしょうか?
よろしくお願いします。
For j = Range("A1").End(xlDown).Row To 2 Step -1
With Cells(j, "AB")
If Not .Value Like "J*" Or .Value Like "W*" Then
.EntireRow.Delete
End If
End With
Next j
No.3ベストアンサー
- 回答日時:
>If Not .Value Like "J*" Or .Value Like "W*" Then
["J*"か"W*"以外の行を削除する]
これは、排他的論理積の内容ですね。
英米人は、何の問題もなく答えられるけれども、日本人などは、どうしても戸惑ってしまいます。英語には、こういう表現がありますが、日本語には、そういう表現があっても、言葉には正確に表す論理がありません。もし、本格的なプログラミングをおやりになるなら、是非、学ばれたほうがよいです。ベン図を書いて試してみるとよいです。
["J*"*か*"W*"以外の行を削除する]
「か=or(和)」が否定になると「and(積)」に変わると覚えていればよいです。
If Not (UCase(.Value) Like "J*" Or Not UCase(.Value) Like "W*" Then
または
If Not UCase(.Value) Like "J*" And Not UCase(.Value) Like "W*" Then
このように演算子が変わります。
No.2
- 回答日時:
こんばんは!
せっかくコードをお考えなのですが、一気に削除する方法はどうでしょうか?
一例です。
Sub Sample1()
Dim i As Long, myStr As String, myRng As Range
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
myStr = Left(Cells(i, "AB"), 1)
If InStr("JW", myStr) = 0 Then
If myRng Is Nothing Then
Set myRng = Cells(i, "AB")
Else
Set myRng = Union(myRng, Cells(i, "AB"))
End If
End If
Next i
If Not myRng Is Nothing Then
myRng.EntireRow.Delete
End If
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.1
- 回答日時:
>"J*"か"W*"以外の行を削除する
If Not(.Value Like "J*" And .Value Like "W*") Then
又は個別に
If Not .Value Like "J*" And Not .Value Like "W*" Then
ではないですかね?
⇒双方がTrueでない事が条件成立になるのでAndでしょうね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBA IF文がうまく動作しないわけがわかりません…
Visual Basic(VBA)
-
エクセルVBAのIF文の否定の複数条件
Excel(エクセル)
-
なぜこんな初歩的なVBAのIf文でエラーか発生して使えないのか、全く理解出来ません。誰か助けてくださ
Visual Basic(VBA)
-
-
4
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
5
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
6
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
7
(Excel VBA)and,orについて
Excel(エクセル)
-
8
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
9
VBAコード記述に際して、コード全体を自動的にインデント付ける方法
Access(アクセス)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
エクセルVBAでフォームのListboxをスクロールするには?
その他(Microsoft Office)
-
12
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
13
vbaでmsgboxの位置を指定
PowerPoint(パワーポイント)
-
14
VBA アクティブでないシートのセルを選択したり、クリアしたり
Excel(エクセル)
-
15
実行時エラー 438 の解決策をおしえてください。
Visual Basic(VBA)
-
16
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
17
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
18
ExcelVBAで質問です。離れた二次元配列を一つにしたい
Visual Basic(VBA)
-
19
【Excel VBA】マクロで書き込んだセルのフォントが「MS Pゴシック」になってしまう。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Yahooフリマってどれくらい時間...
-
ウェブページへのアクセス不可 ...
-
喧嘩をしてLINE削除され、 また...
-
VBA:Openステートメントで開い...
-
教えて!gooはすぐに質問を削除...
-
outlook迷惑メールフォルダーに...
-
mp3の埋め込み画像の削除ができ...
-
フェイスブック 検索履歴削除
-
回答して解決したとお礼があっ...
-
インスタグラムのギャラリーの...
-
教えて!gooのヘルプには 1ヶ月...
-
これはやらせですよね?
-
言論統制を受けたことはありま...
-
アクセスにおいて間違って削除...
-
(Access)複数条件の重複デー...
-
google chromeのブックマークが...
-
政府にとって都合の悪い情報は...
-
エクセル 関数 指定の繰り返し...
-
YouTubeの初期音量が最大になり...
-
今日の日付が過ぎたらその行を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えてgooでガイドライン違反と...
-
教えてgooでコメントしてすぐ消...
-
先ほどした質問が削除されまし...
-
Yahooフリマってどれくらい時間...
-
言論統制を受けたことはありま...
-
スマホのアプリを削除すると、...
-
outlook迷惑メールフォルダーに...
-
告白してフラれた相手の連絡先...
-
指定した文字があった場合、そ...
-
Windows11に残されたWindows10...
-
もう関わりたくない人がいたらL...
-
ATMに登録されている振込先を削...
-
VBA:Openステートメントで開い...
-
ウェブページへのアクセス不可 ...
-
アクセスにおいて間違って削除...
-
バッチファイルを使用したsql@p...
-
喧嘩をしてLINE削除され、 また...
-
これはやらせですよね?
-
エクセルで住所の混在する「丁...
-
ORA-14452について
おすすめ情報