- В этой теме 1 ответ, 2 участника, последнее обновление 4 месяца, 4 недели назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как записать формулу в Excel-файл на всех листах через 1С?
есть большой файл Excel с несколькими листами. Напиши процедуру открытия файла, записи формулы «Какая-тоФормула» в колонку 2 для всех листов и сохранения файла
Процедура на 1С (8.3), которая открывает Excel-файл через COM, проходит по всем листам, записывает формулу «Какая-тоФормула» во все строки колонки 2 (например, до последней заполненной строки на листе) и сохраняет файл:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
Константа 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), замените цикл на нужный диапазон.