Здравствуйте всем.
Программно формируются документы и передаются в Excel, причем массово по несколько сотен. При этом отрываются или разрываются подписи. Необходимо принудительно передвинуть последний разрыв страницы на нужную строку, например перед итоговой. Нужен макрос. Частично задачу решила – разрыв вставляется. НО:
1. Не получается удалить последний установленный Excel-ем разрыв.
2. Сбивается масштаб вмещения на страницу (тот, что задается в параметрах страницы: % от натуральной величины. Например, был 75%, после запуска макроса всегда переключается на 100% - документ разъезжается). Вероятно, в макросе я неправильно настраивала .Worksheet.PageSetup.Zoom Причем процент в документах разный. Его надо запомнить перед корректировкой и восстановить после.
3. Номер строки – переменная (пока в макросе задается константой CheckRow = 40). Придется передавать из программы через ячейку, лучше в последней строке документа с пометкой (например, " CheckRow =" и в соседней ячейке значение), и после обработки ячейки очистить.
Sub Макрос1()
'
' Макрос1 Макрос
'
Dim CheckRow As Long
CheckRow = 40
With ActiveSheet
.ResetAllPageBreaks
If .HPageBreaks.Count > 0 Then
If .HPageBreaks(.HPageBreaks.Count).Location.Row > CheckRow Then
' .HPageBreaks(.HPageBreaks.Count).Delete
.HPageBreaks.Delete
.HPageBreaks.Add Before:=.Rows(CheckRow)
End If
End If
End With
' .Worksheet.PageSetup.Zoom = 75
End Sub
Документы формируются в Excel 2010. Прилагаемый файл с расширением xls .
Прошу снисходительно отнестись к моим скромным знаниям и не критиковать сильно.
