Я пытаюсь найти строку на всех листах, приведенный ниже код получает строку из каждой строки столбца на одном листе и находит ее на другом листе, а затем получает форматирование соответствующей ячейки за месяц.
Проблема здесь в том, что он очень медленный. Как мне сделать это быстрее? есть способ лучше?
Sub colorstatus()
Application.ScreenUpdating = False
Range("H1").Activate
Dim c As Range
'//loop it
For Each c In Range(Range("H2"), Range("H2").End(xlDown))
est1 = Split(c, "_")(0) & "_" & Split(c, "_")(1)
ActiveWindow.ActivatePrevious
Dim ws As Worksheet
Dim ws1 As Worksheet
Dim est As Range
Dim strName As String
Dim status As Range
For Each ws1 In Worksheets
Columns.EntireColumn.Hidden = False
Rows.EntireRow.Hidden = False
Next
On Error Resume Next
strName = est1
For Each ws In Worksheets
With ws.UsedRange
Set est = .Find(What:="*" & strName & "*", After:=.Cells(1, 1), LookIn:=xlValues, LookAt:=xlWhole)
If Not est Is Nothing Then
ws.Activate
GoTo 0
End If
End With
Next ws
0
est.Activate
Set status = Cells.Find(What:="*May*", After:=Range("A1"), LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
Range(Split(status.Address, "$")(1) & est.row).Copy
ActiveWindow.ActivatePrevious
c.Offset(0, 11).PasteSpecial Paste:=xlPasteFormats
Next
End Sub