Excel VBA:检查表中的值是否存在于不同的范围[如错误检查函数],并查找不匹配项
我试图编写一个函数和一个过程,调用这样一个函数来检查位于重复数据大表中的项的名称是否出现在不同的工作表上,基本上类似于用户的输入工作表或设置工作表。基本上,代码应该捕获表2中的拼写错误和不匹配项,而不是表1中的范围。理想情况下,我希望添加一个功能,让代码停止在不匹配的项目上,并可能突出显示它,以便用户可以更正错误或进一步研究问题。目前,我试图编写代码的第一部分,但有些东西不起作用。无论我如何在表中设置数据,它总是说项名称不存在:Excel VBA:检查表中的值是否存在于不同的范围[如错误检查函数],并查找不匹配项,excel,vba,Excel,Vba,我试图编写一个函数和一个过程,调用这样一个函数来检查位于重复数据大表中的项的名称是否出现在不同的工作表上,基本上类似于用户的输入工作表或设置工作表。基本上,代码应该捕获表2中的拼写错误和不匹配项,而不是表1中的范围。理想情况下,我希望添加一个功能,让代码停止在不匹配的项目上,并可能突出显示它,以便用户可以更正错误或进一步研究问题。目前,我试图编写代码的第一部分,但有些东西不起作用。无论我如何在表中设置数据,它总是说项名称不存在: Option Explicit Public Function
Option Explicit
Public Function ItemNameExists(Target As String) As Boolean
Dim lookUp As Excel.Range
Dim itemCell As Excel.Range
ItemNameExists = False
Set lookUp = Worksheets("Sheet2").Range("Table1[Items]")
For Each itemCell In lookUp
If (itemCell.Value = Target) Then
ItemNameExists = True
Exit Function
End If
Next
End Function
Sub CheckErrors()
Dim ItemName As Excel.Range
Dim Cell As Range
Set ItemName = Worksheets("Sheet1").Range("B3:B12")
For Each Cell In ItemName
If (Len(Cell.Value) > 0) Then
If (Not ItemNameExists(Cell.Value)) Then
MsgBox ("Item name doesn't exist on Sheet1")
Exit Sub
End If
End If
Next
End Sub
要搜索
范围
,有一种特定的方法,范围。查找
(官方文档)。
如果未找到匹配项,则返回Nothing
对于您的情况,有相当多的地方可能会错过目标,因此您可能需要调试:
lookUp
实际引用了预期的范围
Target
包含所需的文本itemCell.Text
而不是itemCell.Value
(如果您仍然不想使用Range.Find
)