我创建了一个用户窗体,仅用于数据显示。我将用户表单中的数据与同一 Excel 工作簿中标有“MARKETING_FORM”的选项卡进行比较。 最终,如果两者不匹配,用户表单结果将显示为红色。目前我只想在消息框中弹出结果。
TBITEMNUMBER.Value——这是我的用户表单上的文本框,其中包含零件号。 (11100345) ("MARKETING_FORM").Range("E:E") -- 此范围在单独的选项卡上包含与上面相同的部件号 (11100345) ("MARKETING_FORM").Range("H:H") -- 这将是零件编号颜色名称 (SILVER)
Sub CommandButton3_Click()
Dim Lookup_Value As String
Dim LookupA As Range
Dim ReturnA As Range
Dim If_Not_Found As String
Dim Result As Variant
Lookup_Value = TBITEMNUMBER.Value
Set LookupA = Workbook.Sheets("MARKETING_FORM").Range("E:E")
Set ReturnA = Workbook.Sheets("MARKETING_FORM").Range("H:H")
If_Not_Found = "Item Number Not Found"
Result = Application.WorksheetFunction.Xlookup(Lookup_Value, LookupA, ReturnA, If_Not_Found)
MsgBox Result`
End Sub
每次弹出消息框时,都会显示“未找到商品编号”。 在此输入图片描述
我正在使用 Microsoft 365,并且我知道项目编号位于选项卡上。
我尝试了在互联网上找到的所有不同的组合,虽然数量不多,但没有一个有效。我尝试使用数组,我已经给出了答案。(查看单元格 E3 并回忆 H3) 结果始终是“找不到商品编号”。
最终,如果用户窗体有 11100345 = 黑色,“MARKETING_FORM”有 11100345 = 银色 我希望“黑色”这个词是红色且粗体的,所以我知道这是不准确的。 但显然,我无法更新字体颜色,直到它在消息框中返回正确的颜色。
我从 2007 年起就没有接触过 VBA,所以我有点生疏了。非常感谢任何帮助。
如果工作表上的项目编号存储为数值,则使用字符串搜索值将无法找到匹配项,因此您可以提供数字搜索值:
Sub CommandButton3_Click()
Const If_Not_Found As String = "Item Number Not Found"
Dim Result As Variant
With ThisWorkbook.Worksheets("MARKETING_FORM")
Result = Application.WorksheetFunction.XLookup( _
CLng(TBITEMNUMBER.Value), _
.Range("E:E"), _
.Range("H:H"), _
If_Not_Found)
End With
MsgBox Result
End Sub