Добрый день. Помогите пожалуйста разобраться, где ошибка. При запуске выскакивает ошибка " Next without for". Я совсем новичок в этом, поэтому нужна помощь специалистов
Код
Sub CreateBonusCard()
'
' CreateBonusCard Макрос
' Создание бонусных карт в PDF-формате на основе списка работников
'
'
Dim i As Integer, lastRow As Integer
lastRow = Sheets("Список уволенных ").Cells(Rows.Count, 7).End(xlUp).Row
For i = 7 To lastRow
If Sheets("Список уволенных ").Cells(i, 1).Value = "п" Then
With Sheets("обходной лист")
.Range("B20").Value = Sheets("Список уволенных ").Cells(i, 4).Value
.Range("D20").Value = Sheets("Список уволенных ").Cells(i, 6).Value
.Range("B22").Value = Sheets("Список уволенных ").Cells(i, 5).Value
End With
If Sheets("Список уволенных ").Cells(i, 1).Value = "п" Then
With Sheets("Опись документов")
.Range("B5").Value = Sheets("Список уволенных ").Cells(i, 4).Value
.Range("B6").Value = Sheets("Список уволенных ").Cells(i, 5).Value
End With
Sheets(Array("обходной лист", "Опись документов")).Select
Sheets("обходной лист").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "/Обходной лист" & " (" & Sheets("Список уволенных ").Cells(i, 4).Value & ").pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
Next
End Sub
AnnaD543926, Что за ошибка? Из названия темы это понятно? Предложите новое название, из которого будет понятна проблема/задача - модераторы поменяют. И вернитесь в своё сообщение и отформатируйте код при помощи кнопк <...>
V, Не совсем поняла про повторять 2 раза ))) В первом случае инфо подтягивает на лист "обходной лист", а во втором случае на лист "Опись документов"
JayBhagavan, спасибо, да все верно. но тогда само назначение макроса - что бы он формировал pdf документы на всех у кого стоит признак "п" - не срабатывает. не могу понять. что нужно поставить в конце, что бы он запускал алгоритм до тех пор пока по всем кто с признаком "п" не сформирует документы Сейчас он выглядит так:
Код
Sub CreateBonusCard()
Dim i As Integer, lastRow As Integer
lastRow = Sheets("Список уволенных ").Cells(Rows.Count, 7).End(xlUp).Row
For i = 7 To lastRow
If Sheets("Список уволенных ").Cells(i, 1).Value = "п" Then
With Sheets("обходной лист")
.Range("B20").Value = Sheets("Список уволенных ").Cells(i, 4).Value
.Range("D20").Value = Sheets("Список уволенных ").Cells(i, 6).Value
.Range("B22").Value = Sheets("Список уволенных ").Cells(i, 5).Value
End With
If Sheets("Список уволенных ").Cells(i, 1).Value = "п" Then
With Sheets("Опись документов")
.Range("B5").Value = Sheets("Список уволенных ").Cells(i, 4).Value
.Range("B6").Value = Sheets("Список уволенных ").Cells(i, 5).Value
End With
Sheets(Array("обходной лист", "Опись документов")).Select
Sheets("обходной лист").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ActiveWorkbook.Path & "/Обходной лист" & " (" & Sheets("Список уволенных ").Cells(i, 4).Value & ").pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
End If
Next
End Sub
AnnaD543926 написал: Не совсем поняла про повторять 2 раза
Код
If Sheets("Список уволенных ").Cells(i, 1).Value = "п" Then ' одна проверка
With Sheets("обходной лист")
....
If Sheets("Список уволенных ").Cells(i, 1).Value = "п" Then ' вторая проверка такая же как первая.
With Sheets("Опись документов")