当雇员编号被添加到userform Combobox9时,VLookup向UserForm textbox531添加一个名称

我试图在Excel 2010中的UserForm上对同一工作簿中的另一个工作表执行VLookup。 基本上,当我在我的combobox9框中键入一个员工号码,然后按回车,我想要名称由textbox531框。 这是我到目前为止,我觉得VLookup不工作。 它不会在textbox531框中做任何事情。 它在textbox531没有给我任何东西。 “主pipe”是工作表“表”中范围的名称。 任何指导?

 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 

表

 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我得到相同的运行时错误,因为数据types不匹配你将需要确保你给Vlookup的数据types匹配电子表格中的数据types。

你的问题最有可能的是,你的子绑定到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