Excel VBA比较A列和B列

Excel VBA比较A列和B列,excel,vba,Excel,Vba,我尝试在此处运行此代码: Private Sub CommandButton1_Click() Dim Row_A As Integer, Row_B As Integer, Is_Copy As Boolean Is_Copy = False For Row_A = 1 To 850 For Row_B = 1 To 10840 Is_Copy = IsNumber(Search(Cells(Row_A, 1), Cells(R

我尝试在此处运行此代码:

Private Sub CommandButton1_Click()
    Dim Row_A As Integer, Row_B As Integer, Is_Copy As Boolean
    Is_Copy = False

    For Row_A = 1 To 850
        For Row_B = 1 To 10840
            Is_Copy = IsNumber(Search(Cells(Row_A, 1), Cells(Row_B, 2), 1))
            If Is_Copy Then Cells(Row_B, 2).Interior.Color = RGB(255, 0, 0)
            If Is_Copy Then Cells(Row_B, 3).Value = Is_Copy
            If Is_Copy Then Cells(Row_B, 4).Value = Row_A
            If Is_Copy Then Cells(Row_B, 5).Value = Row_B


            Is_Copy = False
        Next Row_B
    Next Row_A
End Sub
但我看到一个弹出窗口说:

“编译错误:未定义子或函数”

然后突出显示第1行和第7行中的搜索

我需要做什么来解决这个问题

我试图解决的问题是:
我有两个UID列表,通常我会比较这两个列表,但是b列的末尾有3个额外的字符,所以我使用搜索来检查b列是否包含A列。

我一直在使用这种函数,在以前的so线程中找到。这不是一个VBS答案,但可能是一个更容易实现目标的方法

=IF(ISNA(VLOOKUP(<single column I value>,<entire column E range>,1,FALSE)),FALSE, TRUE)
=IF(ISNA(VLOOKUP(,1,FALSE)),FALSE,TRUE)
-或-

=IF(ISNA(VLOOKUP(,1,FALSE)),“FALSE”,“在行中找到文件”&匹配(,0))
您可以用命名的range替换和。那可能是最简单的


只需将该公式沿I列的长度一直拖动到所需的任意列中。

Search
不是VBA中的函数。除非您有一个具有该名称的UDF,否则代码将抛出一个错误

更换

Is_Copy = IsNumber(Search(Cells(Row_A, 1), Cells(Row_B, 2), 1))
有点像

Is_Copy = InStr(Cells(Row_A, 1), Cells(Row_b, 2)) > 0

IsNumber
Search
不是VBA方法,它们是工作表函数。

如上所述,Search不是vb方法或函数。在excel中进行比较的最佳方法是使用VLOOKUP excel函数,该函数不需要编写任何vba脚本。

Sweet!谢谢你的回复!他们中有人为你工作吗?如果是这样的话,别忘了把它作为答案
Is_Copy = InStr(Cells(Row_A, 1), Cells(Row_b, 2)) > 0