Option Explicit
Sub ICD_Check()
Dim Sh1 As Worksheet, Sh2 As Worksheet
Dim Sh1_LR As Long, Sh2_LR As Long
Dim rng1 As Range, r1 As Range, rng2 As Range, r2 As Range
Dim icd1_Arr As Variant, icd2_Arr As Variant
Dim x As Long, y As Long, m As Long, n As Long
Dim DelSpaces As Variant
Dim t As Double
Application.ScreenUpdating = False
Application.Calculation = xlManual
t = Now
DelSpaces = Array(" ", Chr(160), ChrW(8203)) 'ChrW(8203) = Chr(63) extra character
Set Sh1 = Sheets("audit_retail_returned")
Set Sh2 = Sheets("Cohort v2")
Sh1_LR = Sh1.UsedRange.Rows.Count
Sh2_LR = Sh2.UsedRange.Rows.Count
Sh1.Range("X2:X" & Sh1_LR).ClearContents
Set rng1 = Sh1.Range("C2:C" & Sh1_LR)
Set rng2 = Sh2.Range("B2:B" & Sh2_LR)
For n = 0 To UBound(DelSpaces)
rng1.Offset(, 20).Replace What:=DelSpaces(n), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
rng2.Offset(, 1).Replace What:=DelSpaces(n), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
Next n
For Each r1 In rng1
For Each r2 In rng2
If r1.Value = r2.Value Then
icd1_Arr = Split(Sh1.Cells(r1.Row, "W"), ",")
icd2_Arr = Split(Sh2.Cells(r2.Row, "C"), ",")
For x = 0 To UBound(icd1_Arr)
For y = 0 To UBound(icd2_Arr)
If UCase(Left(icd1_Arr(x), 3)) = UCase(Left(icd2_Arr(y), 3)) Then
If Len(Sh1.Cells(r1.Row, "X")) = 0 Then
Sh1.Cells(r1.Row, "X") = icd2_Arr(y)
Else
Sh1.Cells(r1.Row, "X") = Sh1.Cells(r1.Row, "X") & ", " & icd2_Arr(y)
End If
End If
Next y
Next x
End If
Next r2
' DoEvents
' Application.StatusBar = "The code is working : " & Format(r1.Row / Sh1_LR, "0%")
Next r1
' Application.StatusBar = False
Application.ScreenUpdating = True
Application.Calculation = xlAutomatic
MsgBox Format(Now - t, "HH:MM:SS")
End Sub