Возможно ли как-нибудь увеличить скорость работы макроса
Конечно можно. Причём, несколькими способами.
1) используем формулы вместо макроса.
2) считываем макросом значения 2 диапазонов в 2 массива, обрабатываем эти массивы, и записываем массивы обратно на лист.
В этом случае макрос отработает максимум за 2-3 секунды.
3) можно использовать Find, Autofilter, и т.д. и т.п.
Без примера файла, и описания того, что должен делать макрос, помочь с решением сложно.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Попробуйте что-то вроде этого:
Код: Выделить всё
Sub [B]test[/B]()
Dim b [B]As String[/B], cabl As String
Dim ra1 As Range, ra2 As Range, arr1 As Variant, arr2 As Variant
Application.ScreenUpdating = False
With Worksheets("VESSEL")
Set ra1 = .Range("B2:G" & .Range("A" & .Rows.Count).End(xlUp).Row)
End With
With Worksheets("RTCs 25.08-24.09")
Set ra2 = .Range("E3:P" & .Range("B" & .Rows.Count).End(xlUp).Row)
End With
arr1 = ra1.Value: arr2 = ra2.Value ' чтение с листа в массивы
For j = LBound(arr2) To UBound(arr2)
For i = LBound(arr1) To UBound(arr1)
b = CStr(arr1(i, 1))
cabl = arr2(j, 1)
If cabl = b Then arr2(j, 11) = arr1(i, 5): arr2(j, 12) = arr1(i, 6)
Next i
Next j
ra1.Value = arr1: ra2.Value = arr2 ' запись обратно на лист
Application.ScreenUpdating = True
End Sub