База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как записать формулу в Excel-файл на всех листах через 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 22 часа, 6 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
14 мая 2026 в 15:45 #37178
есть большой файл Excel с несколькими листами. Напиши процедуру открытия файла, записи формулы «Какая-тоФормула» в колонку 2 для всех листов и сохранения файла
-
14 мая 2026 в 15:45 #37179
Процедура на 1С (8.3), которая открывает Excel-файл через COM, проходит по всем листам, записывает формулу «Какая-тоФормула» во все строки колонки 2 (например, до последней заполненной строки на листе) и сохраняет файл:
1С (Код)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748Константа xlCellTypeLastCell = 11;Константа xlColumnIndex = 2;Процедура ЗаписатьФормулуВоВсеЛисты(ИмяФайла)ПопыткаExcel = СоздатьОбъект("Excel.Application");Excel.Visible = Ложь;Excel.DisplayAlerts = Ложь;Книга = Excel.Workbooks.Open(ИмяФайла);КоличествоЛистов = Книга.Worksheets.Count;Для НомерЛиста = 1 По КоличествоЛистов ЦиклЛист = Книга.Worksheets(НомерЛиста);ПопыткаПоследняяЯчейка = Лист.Columns(xlColumnIndex).SpecialCells(xlCellTypeLastCell);ПоследняяСтрока = ПоследняяЯчейка.Row;ИсключениеПоследняяСтрока = 1;КонецПопытки;Для Строка = 1 По ПоследняяСтрока ЦиклЛист.Cells(Строка, xlColumnIndex).Formula = "=Какая-тоФормула";КонецЦикла;КонецЦикла;Книга.Save();Книга.Close();Excel.Quit();Книга = Неопределено;Лист = Неопределено;Excel = Неопределено;Сообщить("Формулы записаны и файл сохранен: " + ИмяФайла);ИсключениеТекстОшибки = ОписаниеОшибки();Если ЗначениеЗаполнено(Excel) ТогдаПопыткаExcel.Quit();ИсключениеТекстОшибки = ТекстОшибки;КонецПопытки;КонецЕсли;Сообщить("Ошибка при работе с Excel: " + ТекстОшибки);КонецПопытки;КонецПроцедурыОбъяснения:
— Создаем COM-объект Excel.Application.
— Открываем книгу по пути ИмяФайла.
— Для каждого листа определяем последнюю заполненную строку в колонке 2 (B).
— В каждую ячейку колонки 2 от 1 до последней строки записываем формулу. Формула должна начинаться с «=».
— Сохраняем и закрываем книгу, завершаем работу Excel.
— Обработка ошибок для корректного закрытия Excel.Если формула — это просто текст, а не формула Excel, то вместо свойства Formula используйте Value.
Если нужно записать формулу в абсолютно все строки (например, до 1000), замените цикл на нужный диапазон.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.