我想在K(Sheet1)列中搜索C(Sheet2)列中的所有匹配数据。我现在有下面的工作,但是我有20行 C列,并不想重复多次。我似乎无法在C6到C25的整个范围内进行搜索。
此刻我有以下内容。
Sub LabelXXX
LabelXXX
Sheets("new sheet").Select
For Each r In Intersect(ActiveSheet.UsedRange, Range("K:K"))
If r.Value Like Sheets("SYD").Range("C6") Then
r.Offset(0, 1) = "TEST"
End If
Next r
End Sub
谢谢
答案 0 :(得分:0)
For Each r In Intersect(ActiveSheet.UsedRange, Range("K:K"))
If WorksheetFunction.CountIf(Sheets("SYD").Range("C6:c25"), r.Value) > 0 Then
r.Offset(0, 1).Value = "TEST"
End If
Next r
我使用工作表函数“ countif”修改您的代码,如果找到该值,则我将计算该值是否存在于另一张表中,然后其值将大于0,这意味着该值存在于另一张表中。
我希望这会有所帮助
答案 1 :(得分:0)
或者您可以使用Find()
对象的Range
方法为xlPart
参数指定LookAt
值:
Option Explicit
Sub LabelXXX()
Dim r As Range
With Sheets("new sheet") ' reference "new sheet" sheet
For Each r In Intersect(.UsedRange, .Range("K:K")) ' loop through referenced sheet K column range intersecting referenced sheet used range
If Not Sheets("SYD").Range("C6:C25").Find(what:=r.Value, LookIn:=xlValues, lookat:=xlPart) Is Nothing Then r.Offset(0, 1).Value = "TEST"
Next
End With
End Sub
答案 2 :(得分:0)
您还可以通过如下所示的本地公式来实现此目的:
在单元格L2中,假设您的数据从第2行开始,请插入以下公式
=IF(ISNA(VLOOKUP(K2,SYD!$C$6:$C$25,1,0)),"","TEST")
并复制所需的内容。