如何使用Vlookup命令在combobox中select条目?

我一直在试图使这个代码为我工作,但我已经打到了墙上。 我想从文本框中获取一个vlookup命令,并在用户按下一个命令button时从多个combobox中自动select一个匹配的值。

这是我的逻辑。

Excel 2010>用户表单> VBA

1)用户在文本框“TxtDXCode”中input一个字母数字代码。
2)用户按下“CmdMap”button3)从该文本框中提取左边的3个字符,并将它们分配给一个variables。
4)用上述variables填充文本框“TxtDxCodeLeft3”(这是一个冗余的步骤,只是让我有视觉确认代码工作)。 5)使用文本框“TxtDxCodeLeft3”的值作为查找命令的search参数。 6)使用vlookup从预先填充的combobox“CboCMChapter”和“CboCMCode”中select一个列表项。

Private Sub CmdMap_Click() '(((Extract left values from DX Code and Procedure Code strings to use in Vlookup.))) 'Define variables Dim L1ResultDX As String Dim L1ResultProc As String Dim L2ResultProc As String Dim L3ResultProc As String 'Assign values to variables L1ResultDX = Left(TxtDxCode, 3) L1ResultProc = Left(TxtProcCode, 1) L2ResultProc = Left(TxtProcCode, 2) L3ResultProc = Left(TxtProcCode, 3) 'Extract first 3 characters from DX Code for Vlookup command Me.TxtDxCodeLeft3.Text = L1ResultDX 'Validate TxtDXCode If TxtDxCode.TextLength < 6 Then MsgBox "Missing or invalid code. ", vbExclamation, "DX Code Entry" TxtDxCode.SetFocus Exit Sub End If '(((Assign CM Codes & Chapters to comboboxes as result of Vlookup function.))) 'Set CM combobox default value based on Vlookup results Me.CboCMChapter.Default = Application.VLookup(TxtDxCodeLeft3.Text, Worksheets("CM Chapters").Range("A3:B23,A26:A27,A29:A30"), 2, True) Me.CboCMCode.Default = Application.VLookup(TxtDxCodeLeft3.Text, Worksheets("CM Codes").Range("A3:B283"), 2, True) 

为什么不试图从TxtDxCodeLeft3中放入值,然后在Excel单元格中调用它,然后从那里使用vlookup,然后将结果调用到用户表单中。

 range("A1").value = TxtDxCodeLeft3.value cell A2 = vlookup(a1, range) - this will contain the lookup value for CboCMChapter cell A3 = vlookup(a1, range) - this will contain the lookup value for CboCMCode then call it again in the userform CboCMChapter.value = range("a2").value CboCMCode.value = range("a3").value 

希望有所帮助

我find了答案。 以下代码行格式错误。

 'CM combobox default value based on Vlookup results Me.CboCMChapter.Default = Application.VLookup(blah blah blah) Me.CboCMCode.Default = Application.VLookup(blah blah blah) 

正确的格式是:

 'CM combobox default value based on Vlookup results Me.CboCMChapter.Value = Application.WorksheetFunction.VLookup(blah blah blah) Me.CboCMCode.Value = Application.WorksheetFunction.VLookup(blah blah blah)