VBA Excel-文本框中显示的值错误

VBA Excel-文本框中显示的值错误,vba,excel,Vba,Excel,我有一个列出客户的组合框,用户选择一个客户,然后单击CommandButton以显示有关该客户的相应信息。有关客户的数据来自两个单独的表,组合框从其中一个表中获取其列表 虽然两张表都有相同的客户,但有些客户在两张表中都没有记录。我遇到的问题是,当从组合框中选择一个客户时,如果其中一个工作表中有一个客户从另一个工作表中丢失,则文本框中会显示错误的数据行 Private Sub GoButton_Click() 'Finds ComboBox Value in RunDB, returns colu

我有一个列出客户的组合框,用户选择一个客户,然后单击CommandButton以显示有关该客户的相应信息。有关客户的数据来自两个单独的表,组合框从其中一个表中获取其列表

虽然两张表都有相同的客户,但有些客户在两张表中都没有记录。我遇到的问题是,当从组合框中选择一个客户时,如果其中一个工作表中有一个客户从另一个工作表中丢失,则文本框中会显示错误的数据行

Private Sub GoButton_Click()
'Finds ComboBox Value in RunDB, returns column 1 value
    NILWANo.Text = Range("RunDB!A2:U690").Cells(CustProfileCombo.ListIndex + 1, 1)
    RRank.Text = Range("RunDB!A2:U690").Cells(CustProfileCombo.ListIndex + 1, 2)
    CustClass.Text = Range("RunDB!A2:U690").Cells(CustProfileCombo.ListIndex + 1, 3)
    CalledDate.Text = Range("RunDB!A2:U690").Cells(CustProfileCombo.ListIndex + 1, 15)
    CustType.Text = Range("CustDB!A2:AA350").Cells(CustProfileCombo.ListIndex + 1, 3)

'Grabs Revenue data and formats in currency   
    RevLast3.Text = Range("CustDB!A2:AA350").Cells(CustProfileCombo.ListIndex + 1, 11)
        Me.RevLast3.Value = Format(Me.RevLast3.Value, "$#,##0.00")
    RevLast12.Text = Range("CustDB!A2:AA350").Cells(CustProfileCombo.ListIndex + 1, 12)
        Me.RevLast12.Value = Format(Me.RevLast12.Value, "$#,##0.00")

End Sub

我已尝试将
单元格(CustProfileCombo.ListIndex+1,12)
更改为
+2
,并更改为
0
,但仍然遇到同样的问题。我不擅长VBA,不知道如何更正我的代码。任何帮助都将不胜感激

您需要使用类似于
Find(customerIdHere)
的方法在第二张工作表上找到正确的行
错误的数据行
没有描述您看到的问题。请更详细地描述您看到的内容。例如,组合框在第A20行中找到匹配项,但文本框显示A19中的数据。或者,如果列表中不存在多个(比如5个)客户,文本框可能会显示15个客户的数据。我的假设是,这是我代码中.ListIndex+1部分的问题。虽然我不知道有什么方法可以让文本框显示一个值,但如果没有足够的结构细节,我只能指出方向。您应该确保CustProfileCombo中的值存在于您所说的缺少数据的工作表中。Can应该使用类似于
WorksheetFunction.VLookup(范围(“RunDB!A2:U690”),CustProfileCombo.Value,n,False)
的内容,其中n是A:U中的第n列。如果出现错误(VLookup无法找到精确匹配),则将文本框设为空。您需要使用类似于
find(customerIdHere)的内容
在第二张图纸上找到正确的行
错误的数据行
不能描述您看到的问题。请更详细地描述您看到的内容。例如,组合框在第A20行中找到匹配项,但文本框显示A19中的数据。或者,如果列表中不存在多个(比如5个)客户,文本框可能会显示15个客户的数据。我的假设是,这是我代码中.ListIndex+1部分的问题。虽然我不知道有什么方法可以让文本框显示一个值,但如果没有足够的结构细节,我只能指出方向。您应该确保CustProfileCombo中的值存在于您所说的缺少数据的工作表中。Can应该使用类似于
WorksheetFunction.VLookup(范围(“RunDB!A2:U690”),CustProfileCombo.Value,n,False)
的内容,其中n是A:U中的第n列。如果出现错误(VLookup未能找到精确匹配),则将文本框设为空。