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