[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『if条件で一致する条件が一致するセルの行を消す』(ゆうい)
初心者です。
毎回するデータの処理に使いたいです。
やりたいこと
?@Sheet2を選択する
?AA5からAD行の最終列まで範囲に選択し、
?BE行に"条件1"かつF行に"条件2-*"があればその行(AからAD※ブランク箇所あり)は削除したいです。
Sub セルの値を条件として抽出()
'[A]変数の宣言と値の代入
Worksheets("Sheet2").Activate
Dim dRng As Range
Dim Joken1 As String, Joken2 As String
Dim cnt As Long
Set dRng = Range("A5", Cells(Rows.Count, 1).End(xlUp)).CurrentRegion
Joken1 = Range("条件1").Value
Joken2 = Range("条件2-*").Value
'[B]条件に当たるセルを消す
If Joken1 And Joken2 Then
'行を削除する
dRng.Delete
End If
End Sub
なかなかてこずっており、すみません。
これから勉強していきます。
よろしくお願いいたします。
< 使用 Excel:Office365、使用 OS:Windows10 >
名前の定義に*は使えないと思うので、条件2として定義されているとして、
提示のコードを活かしてみました。
Worksheets("Sheet2").Activateとか、
Set dRng = Range("A5", Cells(Rows.Count, 1).End(xlUp)).CurrentRegion についてはご自身で検討を。
Sub セルの値を条件として抽出()
'[A]変数の宣言と値の代入
Worksheets("Sheet2").Activate
Dim dRng As Range
Dim Joken1 As String, Joken2 As String
Dim r As Range, tmp As Range
Set dRng = Range("A5", Cells(Rows.Count, 1).End(xlUp)).CurrentRegion
Joken1 = Range("条件1").Value
Joken2 = Range("条件2").Value
'[B]条件に当たるセルを消す
For Each r In Range("E5", Cells(Rows.Count, "E").End(xlUp))
If r = Joken1 And r.Offset(, 1) Like Joken2 & "-*" Then
If tmp Is Nothing Then
Set tmp = r
Else
Set tmp = Union(tmp, r)
End If
End If
Next
If Not tmp Is Nothing Then
'行を削除する
tmp.EntireRow.Delete
End If
End Sub
(春朗) 2022/06/23(木) 07:11
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.