I am working on Excel macro. What i need when getting data from another excel sheet, code should first check if there is any other row with the same FundName and if found th
Find
will use the first cell of Range
for the After
parameter, if it is not specified, therefore the search is started after B2, and thus the first cell it finds is B6.
If the order is important for you then call Find
with the last cell provided as After
:
Dim counter As Integer
counter = 0
With shtData.Range(CCell, DCell)
Set c = .Find(SearchString, LookIn:=xlValues, LookAt:=xlWhole, After:=DCell)
If Not c Is Nothing Then
firstAddress = c.Address
Do
counter = counter + 1
Debug.Print "The next match #" & counter & " is " & c.Address
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
Replace this:
Set FindRow = shtData.Range(CCell, DCell).Find(What:=SearchString, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Set NextRow = shtData.Range(CCell, DCell).FindNext(After:=FindRow)
With:
If WorksheetFunction.CountIf(CCell.EntireColumn, SearchString) > 1 Then
'Duplicate found, do something here
Else
'Unique string, do something here
End If
Or
If Evaluate("COUNTIF(" & CCell.EntireColumn.Address & "," & SearchString & ")") > 1 Then
'Duplicate found, do something here
Else
'Unique string, do something here
End If