|
▼きくと さん:
> [A] [B] [C]
>[1] 検索1
>[2] 検索3
>[3] 検索2
>[4]
>[5] 検索1 検索2
>[6] 検索2
>[7]
>[8] 検索3
>[9] 検索1
>[10] 検索2
>[11]
>
>
>この表から(検索1)(検索2)で検索して、[5]行のセルを選択できるとうれしいです。
ある行の中に 一つ以上の「検索1」かつ、一つ以上の「検索2」のある「行」
を抽出するということでしょうか?
そうだとすると、Findメソッドでは難しいですよ。
作業列を使って
> 行の中に 一つ以上の「検索1」かつ、一つ以上の「検索2」のある「行」
という条件を数式で書き出し、条件に一致する行を選択することなら
以下のようでできます。
Sub Try1_行単位の検索()
Dim Rng As Range, r As Range
Dim xCol As Long
Dim Find1 As String
Dim Find2 As String
Find1 = "検索1" '一つ目の検索値
Find2 = "検索2" '二つ目の検索値
Set Rng = ActiveSheet.UsedRange 'シート全体
xCol = Rng.Columns.Count
With Rng.Columns(xCol + 1)
.FormulaR1C1 = _
"=IF(AND(COUNTIF(RC1:RC[-1]," & Find1 _
& ")>0,COUNTIF(RC1:RC[-1]," & Find2 & ")>0),1,"""")"
On Error Resume Next
Set r = .SpecialCells(xlFormulas, xlNumbers)
On Error GoTo 0
If r Is Nothing Then
MsgBox "検索に一致する行はありません"
Exit Sub
End If
r.EntireRow.Select
MsgBox "これらの行がヒットしました"
'後始末
.ClearContents
End With
End Sub
|
|