|
25.10.2006, 15:40 | #1 |
Участник
|
Вывод в эксель. Требуется подвинуть автоматически вставленный вертикальный разделитель.
Макросами посмотрел и получил ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1 что по сути равносильно ActiveSheet.VPageBreaks(1).DragOff -4161, 1 либо так Set ActiveSheet.VPageBreaks(1).Location = Range("G1") Каким образом можно такое замутить из C/AL? Ничего из вот этого не работает: Sheet.VPageBreaks.Item(1).DragOff(-4161,1); Sheet.VPageBreaks.Item(1).Location := Sheet.Range('B1'); Это похоже работает, но нельзя удалить автоматически созданный резделить Sheet.VPageBreaks.Item(1).Delete |
|
26.10.2006, 12:17 | #2 |
Участник
|
Цитата:
Сообщение от grif
Вывод в эксель. Требуется подвинуть автоматически вставленный вертикальный разделитель.
Макросами посмотрел и получил ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1 что по сути равносильно ActiveSheet.VPageBreaks(1).DragOff -4161, 1 либо так Set ActiveSheet.VPageBreaks(1).Location = Range("G1") Каким образом можно такое замутить из C/AL? Ничего из вот этого не работает: Sheet.VPageBreaks.Item(1).DragOff(-4161,1); Sheet.VPageBreaks.Item(1).Location := Sheet.Range('B1'); Это похоже работает, но нельзя удалить автоматически созданный резделить Sheet.VPageBreaks.Item(1).Delete 'Microsoft Excel 11.0 Object Library'.VPageBreak 'Microsoft Excel 11.0 Object Library'.VPageBreaks И работайте через них А вообще, если что-то не получается в Nav, но работает в макросах, то всегда есть такой путь: 1) Создать макрос 2) Запускать его из Nav |
|
26.10.2006, 12:26 | #3 |
Участник
|
Цитата:
Да, я думал про этот метод, но не нашёл каким методом можно программно создать макрос, т.е. загрузить его в документ Excel при генерации отчёта. Правда навреное не сильно упорно искал |
|
26.10.2006, 14:58 | #4 |
Участник
|
Цитата:
Не поленился написать код Код: Name DataType Subtype Length ws Automation 'Microsoft Excel 11.0 Object Library'.Worksheet wss Automation 'Microsoft Excel 11.0 Object Library'.Sheets wa Automation 'Microsoft Excel 11.0 Object Library'.Application wb Automation 'Microsoft Excel 11.0 Object Library'.Workbook wbs Automation 'Microsoft Excel 11.0 Object Library'.Workbooks wvpbs Automation 'Microsoft Excel 11.0 Object Library'.VPageBreaks wvpb Automation 'Microsoft Excel 11.0 Object Library'.VPageBreak Код: CREATE(wa); wbs := wa.Workbooks; wb := wbs.Item('Книга1'); wss := wb.Worksheets; ws := wss.Item('Лист1'); wvpbs := ws.VPageBreaks; wvpb := wvpbs.Item(1); //wvpb.Location := ws.Range('F1'); //wvpb.Delete; Тест такой: Создаете Книга1, вставляете разрыв. Обязательно переходите в режи "разметка страницы". Пото пишите код тот что выше - работает. Проверено |
|
27.10.2006, 12:03 | #5 |
Участник
|
спасибо - всё работает
мой косяк был в том, что я не переводил эксель в режим разметки страниц. В общем сделал Excel.ActiveWindow.View := 2; и всё заработало. После всех манипуляций можно и обратно перевести обычный, присвоив 1 |
|