Я попросил дать некоторые разъяснения, но я не получил никакого ответа. Я начну со следующих предположений:
Столбец D: D в «Листе 1» содержит 200 строк, заполненных данными.
Private Sub Extract_Data_or_Arr()
Dim rngArr As Variant, dArr As Variant
Dim sh As Worksheet, i As Long, j As Long
Dim lngOcc As Long, lngChanges As Long, boolFound As Boolean
Set sh = Sheets("TestOcc")
rngArr = Sheets("SheetJS").Range("A1:ZZ200").Value
dArr = sh.Range("D1:D200").Value
For i = 1 To UBound(rngArr, 1)
boolFound = False
For j = 1 To UBound(rngArr, 2)
If InStr(rngArr(i, j), "ABC") > 0 Or InStr(CStr(rngArr(i, j)), "123") > 0 Then
If Not boolFound Then lngChanges = lngChanges + 1
lngOcc = lngOcc + 1: boolFound = True
dArr(i, 1) = rngArr(i, j)
End If
Next j
Next i
sh.Range("D1:D200").Value = dArr
MsgBox lngOcc & " occurrences, vesus " & lngChanges & " changes made."
End Sub
Наконец, он возвращает количество вхождений в зависимости от количества внесенных изменений.