私は現在、このコードを使用して、ユーザーが入力した特定の値を検索しています。しかし、私はそれが文字列内にある場合、たとえば、ユーザーが "Jon"と入力した場合、検索結果が "Jon、Jonathan、Jones"などである可能性がある場合、値をテストしたい何らかの形でInStr関数を使用していますが、設定方法がわかりません。InStrを使用してより広い値をテストするにはどうすればよいですか?
Private Sub CommandButton1_Click()
ActiveSheet.Range("H1").Select
Dim MyValue As String
MyValue = TextBox1.Value
If MyValue = "" Then
MsgBox "Please enter a sales managers name!"
TextBox1.SetFocus
Else
Application.EnableEvents = False
Worksheets("Sheet2").Activate
Range("A3:I200").Select
Selection.ClearContents
Worksheets("Sheet1").Activate
Me.Hide
Set i = Sheets("Sheet1")
Set E = Sheets("Sheet2")
Dim d
Dim j
d = 2
j = 2
Do Until IsEmpty(i.Range("A" & j))
If i.Range("A" & j) = MyValue Then
d = d + 1
E.Rows(d).Value = i.Rows(j).Value
End If
j = j + 1
Loop
Application.EnableEvents = True
Worksheets("Sheet2").Activate
ActiveSheet.Range("H1").Select
If Range("A3").Value = "" Then
MsgBox "No results were found."
Else
MsgBox "Results were found!"
End If
End If
Unload Me
End Sub
あなたは個々の単語が、句読点のファウルをこの立ち上がっするスペースに分割して計上する必要がありますすることができます。同様に、 'instr(1、" "&i.Range(" A "&j)&" "、" myvalue ""、vbtextcompare) 'も同じように汚れてしまいます。 – Jeeped
ええと、おそらく、句読点がテキストボックスに入力された場合に、何らかのエラーハンドラを追加することはできますか? – dwirony
分割する前に句読点を削除します。サンプルデータを提供していないので、関連するソリューションは提供できません。 – Jeeped