По сути, это продолжение ранее заданного вопроса (ref: Как скопировать все имена листов на конкретный лист в той же книге? ), на который я получил ответ, но после добавления еще одного утверждения я застрялс двумя проблемами: 1) С порядком текущих операторов он показывает только, как будто он выполнил код для одного листа, а не для столбцов, но иногда, когда я пытаюсь смешать операторы If, это работает, что странно.Таким образом, вопрос: имеет ли значение порядок здесь и если да, то в каком порядке, если он должен прийти?2) Поскольку операторы IF одинаковы для всех, я бы хотел их объединить, но не знаю, возможно ли это вообще. Вот код:
Sub passport_combining ()
With ThisWorkbook.Sheets("MainSheet")
For Each wsheet In ThisWorkbook.Sheets
If wsheet.Name <> "MainSheet" Then
Set nextEntry_FTE_quantity = .Cells(.Rows.Count, "K").End(xlUp).Offset(1, 0)
Set nextEntry_nonrecurring_expenses = .Cells(.Rows.Count, "S").End(xlUp).Offset(1, 0)
Set nextEntry_initiative_type = .Cells(.Rows.Count, "Q").End(xlUp).Offset(1, 0)
Set nextEntry = .Cells(.Rows.Count, "G").End(xlUp).Offset(1, 0)
If IsError(Application.Match(wsheet.Name, .Range("G:G"), 0)) Then nextEntry.Value = wsheet.Name
If IsError(Application.Match(wsheet.Name, .Range("G:G"), 0)) Then nextEntry_FTE_quantity.Value = wsheet.Range("BH16").Value
If IsError(Application.Match(wsheet.Name, .Range("G:G"), 0)) Then nextEntry_initiative_type.Value = wsheet.Range("K8").Value
If IsError(Application.Match(wsheet.Name, .Range("G:G"), 0)) Then nextEntry_nonrecurring_expenses.Value = wsheet.Range("BH17").Value
End If
Next wsheet
End With
Спасибо!