Я пытаюсь выполнить цикл нескольких листов, содержащих некоторые исходные данные, которые необходимо скопировать на один основной лист, называемый здесь «PriorityList». Прежде всего, подпрограмма не работает, и я думаю, что ошибка находится где-то в «найти» -метод. Во-вторых, подэлемент занимает довольно много времени, и я думаю, что это возможно потому, что метод «найти» ищет весь лист, а не только соответствующий диапазон?Excel VBA :: Найти функцию в цикле
Большое спасибо за ваши ответы!
Патрик
Sub PriorityCheck()
'Sub module to actualise the PriorityList
Dim CurrWS As Long, StartWS As Long, EndWS As Long, ScheduleWS As Long
StartWS = Sheets("H_HS").Index
EndWS = Sheets("E_2").Index
Dim SourceCell As Range, Destcell As Range
For CurrWS = StartWS To EndWS
For Each SourceCell In Worksheets(CurrWS).Range("G4:G73")
On Error Resume Next
'Use of the find method
Set Destcell = Worksheets(CurrWS).Cells.Find(What:=SourceCell.Value, After:=Worksheets("PriorityList").Range("A1"), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
'Copying relevant data from source sheet to main sheet
If Destcell <> Nothing Then
Destcell.Offset(0, 2).Value = SourceCell.Offset(0, 5).Value + Destcell.Offset(0, 2).Value
If SourceCell.Offset(0, 3).Value = "x" Then Destcell.Offset(0, 3).Value = "x"
End If
End If
On Error GoTo 0
Next SourceCell
Next CurrWS
End Sub
КСТАТИ Я просто заметил ваш 'Set Destcell = Worksheets (CurrWS) .Cells.Find (What: = SourceCell.Value, After: = Worksheets («PriorityList»). Range («A1»), LookIn: = xlValues, ... 'Вы пытаетесь найти значение soureCell в' PriorityList '? – bonCodigo
Да, точно! Вы нашли ошибку в этой конкретной строке? – Patrick