【问题标题】:VLookup to add a name to UserForm textbox531 when an employee number is added to userform Combobox9当员工编号添加到用户表单 Combobox9 时,VLookup 将名称添加到用户表单 textbox531
【发布时间】:2015-09-11 02:04:07
【问题描述】:

我试图在 Excel 2010 中的用户窗体上对同一工作簿中的另一个工作表进行 VLookup。基本上,当我在组合框9 框中键入员工编号并按 Enter 键时,我希望 VLookup 将姓名填写到 textbox531 框中。这是我到目前为止所拥有的,我觉得 VLookup 不起作用。它在textbox531 框中没有任何作用。它在textbox531 中没有给我任何东西。 “Officer”是工作表“Tables”上的范围名称。有什么指导吗?

Private Sub TextBox531_Change()
    'Dim LName1 As String
    LName1 = WorksheetFunction.VLookup(ComboBox9.Value, Worksheets("Officers").Range("Officers"), 2, False)
    TextBox531.Value = LName1
    MsgBox (LName1)
End Sub

【问题讨论】:

  • 我对 VBA 很陌生,所以我可能在某处犯了错误。我的范围是正确的。第 1 列包含员工编号,第 2 列包含姓氏 (Lname)。

标签: vba excel


【解决方案1】:
Private Sub ComboBox9_Change()
Dim sht As Worksheet, cmbVal As Double
    Set sht = Worksheets("Tables")
    cmbVal = Me.ComboBox9.Value
    TextBox531.Value = Application.WorksheetFunction.VLookup(cmbVal, sht.Range(Officers), 2, False)
    Set sht = Nothing
End Sub

@George 我遇到了同样的运行时错误,因为数据类型不匹配,您需要确保提供给 Vlookup 的数据类型与电子表格中的数据类型匹配。

【讨论】:

  • 克林特,我会把它放在我的 ComboBox9 中,它会输入员工编号,然后当我从组合框 9 框中按 Enter 时,我的文本框 531 会弹出姓名?我还用表格替换了您的 Sheet1,并通过将 textbox1 更改为 textbox531 来调整我的范围?
  • 是的,乔治,我改了名字,所以它应该适合你。我给 Taylor 投了赞成票,因为他的答案与我的基本相同,只是没有正确的数据类型。
【解决方案2】:

您的问题很可能是您的 sub 与 TextBox531_Change() 相关联,而您似乎希望它与 combobox9_Change() 相关联。

尝试将代码更改为

Private Sub combobox9_Change()
Dim LName1 As String
LName1 = WorksheetFunction.VLookup(ComboBox9.Value, Worksheets("Officers").Range("Officers"), 2, False)
TextBox531.Value = LName1
MsgBox (LName1)
End Sub

【讨论】:

  • 运行时错误'9':下标超出范围。这是什么意思?
  • 您提到工作表名为“表格”,请尝试更改为:LName1 = WorksheetFunction.Vlookup(ComboBox9.Value, Worksheets("Tables").Range("Officers"), 2, False)
  • 我错过了那张桌子。但现在我收到此错误:运行时错误“1004”:无法获取 WorksheetFunction 类的 VLookup 属性
  • 表示输入的值在范围内没有找到。如果应该找到它,请检查它在两个位置的拼写是否相同。否则,如果未找到某些内容,您可以阻止它弹出错误消息,方法是将 Application.DisplayAlerts = False 添加到 sub 的开头并将 Application.DisplayAlerts = True 添加到 sub 的末尾。
  • 感谢您的帮助,但还有其他事情发生。当我运行用户窗体并且焦点在 combobox9 上时,我开始输入,它立即给了我错误。所以它甚至不会接近 vlookup。顺便说一句,拼写是正确的。
猜你喜欢
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
  • 2016-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多