|
▼M さん:
Findメソッド案ですが、、
「会社名」と「担当者」名をAND検索をおこなうとき、
シートの作業列(使っていない列)たとえば、[Q列] に
B列とC列をある区切り文字 (たとえば "|")で結合した値を
書き込んでおくと、
一回のFind検索をかけるだけで、最も最近の指定の
「会社」と「担当者」の組みをみつけることができます。
(Do〜Loopが不要になります)
<準備>
作業列(以下では Q列としています)に、
[Q2]セルに、 =B2&"|"&C2
と数式を打ち込み、データ最終行までCopy しておきます
Sub もしFindを使うなら_その2()
Dim c As Range
Dim 会社名 As String
Dim 担当者名 As String
Dim 検索値 As String
Dim ok As Boolean
If cboKaisha.ListIndex > -1 Then
会社名 = cboKaisha.Text
If cboTantou.ListIndex > -1 Then
担当者名 = cboTantou.Text
検索値 = 会社名 & "|" & 担当者名
ok = True
End If
End If
If Not ok Then Exit Sub
With Worksheets("AAA")
'作業列を下から検索 '検索値 = 会社名 & "|" & 担当者名
Set c = .Columns("Q").Find(検索値, _
After:=.Range("Q1"), _
LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If Not c Is Nothing Then
txtCN.Text = .Cells(c.Row, "H").Value + 1
Else
MsgBox "指定会社の指定担当者が見つかりませんでした"
txtCN.Text = ""
End If
End With
End Sub
いくつか変数を間違えていたので、一度削除して、再掲しました。m(__)m
|
|