Нужно автоматически разметить страницу для печати (12 клеток в ширину 62 в длину), так как обычными екселевскими методами это сделать нельзя была идея сделать это макросом. Есть для этого код, написанных добрым человеком, но очень часто вылазиет ошибка(1004), и этот макрос работает не во всех документах. Что в нем не так и как это поправить? (Сам совсем плохо разбираюсь VBA и в макросах)
[vba]
Код
Sub PageBreak() r = Int(Range(ActiveSheet.PageSetup.PrintArea).Rows.Count / 62) c = Int(Range(ActiveSheet.PageSetup.PrintArea).Columns.Count / 12) For i = 1 To r Set ActiveSheet.HPageBreaks(i).Location = Range("A" & i * 62 + 1) Next i For i = 1 To c Set ActiveSheet.VPageBreaks(i).Location = Cells(1, i * 12 + 1) Next i End Sub
[/vba]
Нужно автоматически разметить страницу для печати (12 клеток в ширину 62 в длину), так как обычными екселевскими методами это сделать нельзя была идея сделать это макросом. Есть для этого код, написанных добрым человеком, но очень часто вылазиет ошибка(1004), и этот макрос работает не во всех документах. Что в нем не так и как это поправить? (Сам совсем плохо разбираюсь VBA и в макросах)
[vba]
Код
Sub PageBreak() r = Int(Range(ActiveSheet.PageSetup.PrintArea).Rows.Count / 62) c = Int(Range(ActiveSheet.PageSetup.PrintArea).Columns.Count / 12) For i = 1 To r Set ActiveSheet.HPageBreaks(i).Location = Range("A" & i * 62 + 1) Next i For i = 1 To c Set ActiveSheet.VPageBreaks(i).Location = Cells(1, i * 12 + 1) Next i End Sub
RAN, не работает с вашей первой строчкой - пишет про недействительную внешнюю процедуру [vba]
Код
ActiveSheet.ResetAllPageBreaks Sub ssd() r = Int(Range(ActiveSheet.PageSetup.PrintArea).Rows.Count / 62) c = Int(Range(ActiveSheet.PageSetup.PrintArea).Columns.Count / 12) For i = 1 To r Set ActiveSheet.HPageBreaks(i).Location = Range("A" & i * 62 + 1) Next i For i = 1 To c Set ActiveSheet.VPageBreaks(i).Location = Cells(1, i * 12 + 1) Next i
End Sub
[/vba]
RAN, не работает с вашей первой строчкой - пишет про недействительную внешнюю процедуру [vba]
Код
ActiveSheet.ResetAllPageBreaks Sub ssd() r = Int(Range(ActiveSheet.PageSetup.PrintArea).Rows.Count / 62) c = Int(Range(ActiveSheet.PageSetup.PrintArea).Columns.Count / 12) For i = 1 To r Set ActiveSheet.HPageBreaks(i).Location = Range("A" & i * 62 + 1) Next i For i = 1 To c Set ActiveSheet.VPageBreaks(i).Location = Cells(1, i * 12 + 1) Next i
Появилась ещё одна проблема - картинки (QR коды) сами по себе съезжают.. ТОЛЬКО при печати, хотя визуально расположены правильно. Все остальные - работают отлично. QR коды вставляет в excel программа написанная мной на Python. Прикрепил сам ексель, посмотрите кому не сложно. Ссылка удалена. Нарушение Правил форума [moder]Этот вопрос не имеет отношения к первоначальной теме. Создавайте новую[/moder]
Появилась ещё одна проблема - картинки (QR коды) сами по себе съезжают.. ТОЛЬКО при печати, хотя визуально расположены правильно. Все остальные - работают отлично. QR коды вставляет в excel программа написанная мной на Python. Прикрепил сам ексель, посмотрите кому не сложно. Ссылка удалена. Нарушение Правил форума [moder]Этот вопрос не имеет отношения к первоначальной теме. Создавайте новую[/moder]omon3
Сообщение отредактировал Pelena - Суббота, 27.02.2016, 14:55