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

我试图设置一个用户窗体来做一个循环,并在同一个工作簿内的一个单独的工作表中查找我的表中的信息。

我希望我的用户表单在我的表格中查找信息,然后自动填充其他文本框,以便限制按键和重复项。

我发现一些代码可以根据需要与另一个用户表单一起工作。 但是,当我尝试对我的表使用相同的代码时,它会像循环一样查看循环,但不填充用户窗体。 我试图改变与用户forms的文本框名称,并确保名称匹配…但无济于事。 我也必须跳过我的用户窗体上的combobox,这可以影响我的代码?

Option Explicit Dim id As String, i As String, j As Integer, flag As Boolean Sub GetData() If Not IsNumeric(UserForm1.TextBox1.Value) Then flag = False i = 0 id = UserForm1.TextBox1.Value Do While Cells(i + 1, 1).Value <> "" If Cells(i + 1, 1).Value = id Then flag = True For j = 4 To 7 UserForm1.Controls("TextBox" & j).Value = Cells(i + 1, j).Value Next j End If i = i + 1 Loop If flag = False Then For j = 2 To 4 ' UserForm1.Controls("TextBox" & j).Value = "" Next j End If Else End If End Sub 

请尝试将您的范围限定在工作表参考中:

 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