|
おはようございます。
質問させていただきます。
以下のシート(検索)があります。
D列 E列 F列
会社コード 会社名 検索対象コード
12345 A会社 1111
56789 B会社 2222
01112 B会社 3333
・ ・ ・
・ ・ ・
1.ユーザーフォームで、TextBox1・コマンドボタン1を作成。
TextBox1に検索対象(F列)(重複のないデータです)の数字を入力、コマンドボタン1押下で検索を開始する。
2.見つかったらそのF列となりのE列(会社名)とD列(会社コード)
をメッセージボックスで表示。
やりたい事ですが、
検索後もしE列に同じ会社名が存在した場合(誤入力等を想定し)、
メッセージを出し同じ会社名のセルを赤色に塗りつぶす。
(検索対象FoundCellの隣E列FoundCell.offset(,-1)を検索するという事かと
思いますが、どの様にに代入するのかで行き詰ってしまいました・・・。)
アドバイス等いただければと思います。
どうぞよろしくお願いいたします。
Sub 検索()
Dim Mynumber As String
Dim FoundCell As Range
Dim fs, msg
Range("F1").Select
Mynumber = UserForm1.TextBox1.Text
Set FoundCell = Cells.Find(What:=Mynumber, After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, _
MatchByte:=False)
With Worksheets("検索").UsedRange.Columns(6)
If Not FoundCell Is Nothing Then
fs = FoundCell.Address
msg = MsgBox("会社コードは「" & FoundCell.Offset(, -2) & "」" & Chr(13) & _
"会社名は「" & FoundCell.Offset(, -1) & " 」でした。", vbOKCancel)
If msg = vbCancel Then
Exit Sub
?※ここにF列検索後E列会社名=FoundCell.Offset(, -1)代入の式??
Do
?F列検索後E列会社名?.Interior.ColorIndex = 3
Set ?F列検索後E列会社名? = .FindNext(?F列検索後E列会社名?)
Loop While Not ?F列検索後E列会社名? Is Nothing And ?F列検索後E列会社名?.Address <> FoundCell?検索最初の隣のE列?
End If
End With
End Sub
※↑?の部分が行き詰っている箇所です。
|
|