Здравствуйте! Начинающий пользователь VBA, увы, самоучка (( Прошу помощи
Задача: Циклично обходить определённые листы книги, анализировать в нужном диапазоне листа наличие данных и если данные есть, выделять их в область печати Дальше нужно на листах, в которых есть данные, т.е. условие наличие данных положительное - экспортировать их в PDF И ладно, если бы нужно было экспортировать каждый лист по отдельности - проблем нет А мне нужно экспортировать их в один файл
И я вот вымучал только такой код Тут происходит экспорт каждого листа с положительным выполнением условия в PDF
[vba]
Код
Sub PrintToPDF()
'Указываем количество листов от и до For i = 1 To 5
'Активируем первый лист в цикле Worksheets("M" & i).Activate
Т.е. если данные есть на листе М1 и листе М3, М4 То мне нужно, чтобы они выводились на печать
Здравствуйте! Начинающий пользователь VBA, увы, самоучка (( Прошу помощи
Задача: Циклично обходить определённые листы книги, анализировать в нужном диапазоне листа наличие данных и если данные есть, выделять их в область печати Дальше нужно на листах, в которых есть данные, т.е. условие наличие данных положительное - экспортировать их в PDF И ладно, если бы нужно было экспортировать каждый лист по отдельности - проблем нет А мне нужно экспортировать их в один файл
И я вот вымучал только такой код Тут происходит экспорт каждого листа с положительным выполнением условия в PDF
[vba]
Код
Sub PrintToPDF()
'Указываем количество листов от и до For i = 1 To 5
'Активируем первый лист в цикле Worksheets("M" & i).Activate
Если, не объединять на одном листе информацию с нескольких, то каждый лист, расценивается как отдельная задача на печать и будет каждый раз новый файл. Альтернативой может быть только использование внешних утилит по объединению файлов PDF в один, но это не стандартные утилиты для Windows.
Если, не объединять на одном листе информацию с нескольких, то каждый лист, расценивается как отдельная задача на печать и будет каждый раз новый файл. Альтернативой может быть только использование внешних утилит по объединению файлов PDF в один, но это не стандартные утилиты для Windows.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Имеем цикл обхода нужного диапазона листов В цикле есть условие, если в определённой ячейке есть данные, анализировать где эти данные заканчиваются и включать область с нужными данными в "область печати"
Далее нужно включить этот лист в массив (Array - я полагаю)
И так до конца цикла
После окончания цикла, необходимо выделить лист 1 + листы в которых условие было положительным и экспортировать их в PDF
т.е. задача вообще не тривиальная
Имеем цикл обхода нужного диапазона листов В цикле есть условие, если в определённой ячейке есть данные, анализировать где эти данные заканчиваются и включать область с нужными данными в "область печати"
Далее нужно включить этот лист в массив (Array - я полагаю)
И так до конца цикла
После окончания цикла, необходимо выделить лист 1 + листы в которых условие было положительным и экспортировать их в PDFlump1ck
ReDim strSheets(Sheets.Count - 1) For i = 1 To 5 With Worksheets("M" & i) LastRow = .Cells(.Rows.Count, 10).End(xlUp).Row + 1 'MsgBox LastRow If LastRow > 9 Then strSheets(j) = Worksheets("M" & i).Name j = j + 1 .PageSetup.PrintArea = .Range(.Cells(1, 1), .Cells(LastRow, 31)).Address End If End With Next i ReDim strSheets(j - 1)
[/vba] Только обработайте если листов подходящих нет
а так [vba]
Код
ReDim strSheets(Sheets.Count - 1) For i = 1 To 5 With Worksheets("M" & i) LastRow = .Cells(.Rows.Count, 10).End(xlUp).Row + 1 'MsgBox LastRow If LastRow > 9 Then strSheets(j) = Worksheets("M" & i).Name j = j + 1 .PageSetup.PrintArea = .Range(.Cells(1, 1), .Cells(LastRow, 31)).Address End If End With Next i ReDim strSheets(j - 1)
[/vba] Только обработайте если листов подходящих нетbmv98rus
Замечательный Временно просто медведь , процентов на 20.