|
▼KIKAKU さん:
こんにちは。
出かけてしまうので問題があっても投稿は夜になってしまいますが、
>ユーザーフォーム(Userform1)には
> Textbox1----検索行の指定用--1と指定すると1行目を
> 検索対象とします
> Textbox2----検索値指定用
> Textbox3----検索結果表示用
textbox4----検索の結果見つかったセルアドレス
これを↑を追加して、
>とすると、
Userform1のモジュールの
以下のプロシジャーを差し替えて下さい。
(他は変更なしです)
'=============================================================
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim 検索値 As String
Dim col As Long
With ActiveSheet
If Val(TextBox2.Value) > Application.Max(.Range(検索セル範囲)) Then
MsgBox "検索値指定エラー"
Cancel = True
Else
検索値 = TextBox2.Text
col = .Evaluate("IF(ISERROR(MATCH(" & _
検索値 & "," & 検索セル範囲 & ",1)),0," & _
"IF(ISERROR(MATCH(" & 検索値 & "," & 検索セル範囲 & ",0))," & _
"MATCH(" & 検索値 & "," & 検索セル範囲 & ",1)," & _
"MATCH(" & 検索値 & "," & 検索セル範囲 & ",1)-1))")
TextBox4.Text = .Evaluate("=OFFSET(" & 検索開始セル & ",0," & col & ",1,1)").Address
TextBox3.Text = .Evaluate("=OFFSET(" & 検索開始セル & ",0," & col & ",1,1)")
End If
End With
End Sub
アドレス表示にしましたが、本当に列だけ(BとかCとかのみ)の結果がほしいなら
上記の結果をちょっと加工すれば得られます。
確認してみて下さい。
|
|