Как удалить разрывы области печати в Excel через 1C

1. yesmax7 01.03.23 07:09 Сейчас в теме
Создаю файл Excel через 1С. Все ОК. Задал область печати с 5 по нужный столбец. Но эта область не помещается на 1 странице. Нужно удалить вертикальные разрывы страницы. В Excel руками удалить просто. Заходишь в страничный режим (Вид - Страничный режим) и двигаешь разрывы (они нарисованы пунктиром). Пробовал удалить разрывы так:
КоличествоРазрывов = Лист.VPageBreaks.Count;
			Попытка
				Для Индекс = 1 По КоличествоРазрывов Цикл
					ТекущийИндекс = КоличествоРазрывов - Индекс + 1; 
					Лист.VPageBreaks.Item(ТекущийИндекс).Delete(); 
				КонецЦикла;
			Исключение
				Сообщить(ОписаниеОшибки());
			КонецПопытки;
Показать

Или так:
КоличествоРазрывов = Лист.VPageBreaks.Count;
			Попытка
				Для Индекс = 1 По КоличествоРазрывов Цикл
					ТекущийИндекс = КоличествоРазрывов - Индекс + 1; 
					Лист.VPageBreaks(ТекущийИндекс).Delete(); 
				КонецЦикла;
			Исключение
				Сообщить(ОписаниеОшибки());
			КонецПопытки;
Показать

В ошибку не выходит, по отладке проходит, но и разрывы остаются.
Если записать макрос и убрать руками разрывы, VBA выдает такой код:
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
Значит этот код можно засунуть в 1С. НО как это сделать?
Описание метода DragOff() - https://learn.microsoft.com/en-us/office/vba/api/excel.hpagebreak.dragoff
Описание первого параметра метода XlDirection - https://learn.microsoft.com/en-us/office/vba/api/excel.xldirection
Пробовал передавать в параметр и строку "xlToRight", и строку "Direction:=xlToRight", и числовое значение -4161 и т. д. Все вываливается в исключение.
Ошибка: ошибка при вызове контекста DragOff. Дале либо типы не совпадают, либо произошла исключительная ситуация.
Перебрал все возможные варианты в цикле. Все выпало в исключения.
Массив1 = Новый Массив;
			Массив1.Добавить("");
			Массив1.Добавить("xlToRight");
			Массив1.Добавить("Direction:=xlToRight");
			Массив1.Добавить(-4161);
			Массив1.Добавить("-4161");
			Массив1.Добавить("xlToLeft");
			Массив1.Добавить("Direction:=xlToLeft");
			Массив1.Добавить(-4159);
			Массив1.Добавить("-4159");
			Массив1.Добавить("xlUp");
			Массив1.Добавить("Direction:=xlUp");
			Массив1.Добавить(-4162);
			Массив1.Добавить("-4162");
			Массив1.Добавить("xlDown");
			Массив1.Добавить("Direction:=xlDown");
			Массив1.Добавить(-4121);
			Массив1.Добавить("-4121");
			
			Массив2 = Новый Массив;
			Массив2.Добавить("");
			Массив2.Добавить(1);
			Массив2.Добавить("1");
			Массив2.Добавить("RegionIndex:=1");
			
			Для каждого Стр1 Из Массив1 Цикл
				Для каждого Стр2 Из Массив2 Цикл
					Попытка
						Лист.VPageBreaks(1).DragOff(Стр1, Стр2);
						а = 1;
					Исключение
						Сообщить("Стр1 " + Стр1 + " Стр2 " + Стр2 + " - " + ОписаниеОшибки());
					КонецПопытки;					
				КонецЦикла;				
			КонецЦикла;
Показать

Кто знает как сделать?
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 81 01.03.23 08:34 Сейчас в теме
(1)в описании метода DragOff есть ремарка:
Прикрепленные файлы:
3. yesmax7 01.03.23 10:41 Сейчас в теме
(2)Ясно, но через Delet() я тоже пробовал. Писал об этом выше. Ошибку не дает, но и разрывы не удаляет.
Попробовал еще не удалять, а поменять расположение разрыва:
Попытка
				Лист.VPageBreaks.Item(2).Location = Лист.Range("AD1"); 
				Лист.VPageBreaks.Item(1).Location = Лист.Range("AD1"); 
			Исключение
				Сообщить(ОписаниеОшибки());
			КонецПопытки;
			
			Попытка
				Лист.VPageBreaks(2).Location = Лист.Range("AD1"); 
				Лист.VPageBreaks(1).Location = Лист.Range("AD1"); 
			Исключение
				Сообщить(ОписаниеОшибки());
			КонецПопытки;
Показать

В ошибку не уходит, но и разрыв не меняется. По отладчику проходишь, в момент исполнения кода видно что адрес разрыва не меняется.
Лист.VPageBreaks.Item(1).Location.Address как был равен "$L$1" так и остался. Не понятно, почему ничего не происходит. Тупо не работает и все, хоть бы ошибку дал.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот