多个文本框的索引匹配用户窗体

时间:2019-09-06 13:46:32

标签: excel vba userform

我有一个非常简单的用户窗体,可以让用户输入名称和数字,然后将其插入特定的单元格中,并在它们之间添加一些特定的文本。每个名称都有一个关联的编号。例如Adams = 286。

在您单击或在名字文本框上按Enter之后,以下代码将应用该数字。

Private Sub ufSUBnum_Enter()
Dim dataNum As Variant
dataNum = Application.Index(Range("Data!$U$3:$U$679"), _
Application.Match(ufSUBname.Value, Range("Data!T3:T679"), 0), 1)

If IsError(dataNum) Then
    ufSUBnum.Value = ""
Else
    ufSUBnum.Value = dataNum
End If
End Sub

我想做的也是从数字索引匹配名称。有时我们不知道名称,或者只是更快地输入数字,但是很多时候我们都不知道该数字。

我尝试在范围内翻转(包括更改userform文本框标签),因此当我输入3位数字时,它将应用相关的名称。

它只是返回错误0。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

enter image description here

Private Sub ufSUBnum_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim dataNum As Variant

If ufSUBnum.Value <> "" Then
    Set FindName = Worksheets("Data1").Range("$T$3:$T679").Find(ufSUBnum.Value, LookIn:=xlValues)

    If FindName Is Nothing Then
        ufSUBnum.Value = ""
    Else
        ufSUBnum.Value = FindName.Offset(0, 1).Value
    End If
End If

End Sub