我的代码不适用于我的用户表单,为什么?

时间:2017-02-08 14:25:35

标签: excel vba excel-vba

我正在尝试设置一个用户表单来执行循环并在我的表中查找信息,该信息位于同一工作簿中的单独工作表中。

我希望我的用户表单在我输入时在表格中查找信息,然后自动填写其他文本框,以便我可以限制击键和重复。

我找到了一些可以根据需要使用其他用户表单的代码。但是,当我尝试为我的表使用相同的代码时,它会像看起来那样遍历循环,但它不会填充用户表单。我尝试更改用户表单文本框名称并确保名称匹配...但无济于事。我还必须跳过用户表单上的组合框,这会影响我的代码吗?

try

1 个答案:

答案 0 :(得分:0)

尝试将您的范围限定为工作表参考:

Option Explicit

Sub GetDataA()
    Dim id As String, i As String, j As Integer, flag As Boolean

    If Not IsNumeric(UserForm1.TextBox1.Value) Then
        flag = False
        i = 0
        id = UserForm1.TextBox1.Value

        With Worksheets("myTableWorksheetName") '<--| change "myTableWorksheetName" to your actual worksheet with table name
            Do While .Cells(i + 1, 1).Value <> ""
                If .Cells(i + 1, 1).Value = id Then
                    flag = True
                    For j = 2 To 7
                        UserForm1.Controls("TextBox" & j).Value = .Cells(i + 1, j).Value
                    Next j
                End If
                i = i + 1
            Loop
        End With

        If flag = False Then
            For j = 5 To 10
                UserForm1.Controls("TextBox" & j).Value = ""
            Next j
        End If
    End If
End Sub