Часто слышу этот вопрос , как сделать , как написать !
Объяснить мне сразу трудно - поэтому давайте "на пальцах"
Свежий простой пример :
вопрос "
Ексель.Cells(1,3).Formula= "=СЦЕПИТЬ(E1;C7)";""
первое на что хочу обратить внимание
те функции которые Вы видите визуально в ячейке MS EXCEL для 1С "слегка не знакомы", ей лучше озвучить имя функции на VBA
откуда Вы знаете как это функция на VBA называется ???
я Вам расскажу, немного терпения
открываем новую книгу MS EXCEL
идем в меню Сервис - Макрос - Начать запись - Ок (появится маленькое окошко с квадратной кнопкой - его не кое случае не закрывать)
кликаем ячейку "С1" и пишем в ней формулу
=СЦЕПИТЬ(E1;C7)
после этого нажимаем на квадратную кнопочку (Мы только что с Вами записали макрос на языке VBA)
посмотрим что получилось
идем в меню Сервис - Макрос - Макросы - (там будет в новой книге по умолчанию Макрос1) - выбираем его и нажимаем кнопку "Войти"
Поздравляю - мы попали во встроенный редактор VBA (аналог конфигурартора 1С)
и что мы видим
Sub Макрос1() Range("C1").Select ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)" Range("C2").Select End Sub
теоритически нам нужно только
Range("C1").FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)"
это и будет для 1С =
Cells(1,3).Formula= "=СЦЕПИТЬ(E1;C7)";
проверим напишем код на любимом 1С
Процедура Сформировать() Перем Кат,Шаб; Ехсел=СоздатьОбъект("Excel.Application"); Книга=Ехсел.Workbooks; Если ФС.ВыбратьФайл(0,Кат,Шаб,"Выбери файл Еxcel",,"*.xls",)=1 Тогда Книга.Open(Шаб+Кат); Ехсел.Range("C1").FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)"; Книга.Close(); Ехсел=""; КонецЕсли; КонецПроцедуры
все работает.
немного подумав, Вы поймете, что
Ехсел.Range("C1").FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)";
можно заменить на
Ехсел.Cells(1, 3).FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)";
и результат не изменится, а возможностей прибавится.
В MS EXCEL только амлет нельзя пожарить - возможности его одурманивают.
Я рад , что кому то это статья пригодилась. Спасибо Вам всем.
И чтобы закрепить материал,
напишу задачу (недавно она здесь на портале была озвучена)
Многие делаю отчеты и сохраняют в EXCEL...
так вот задача стояла в следующем, что бы при открытии файла
у таблица стоял фильтр с заданными параметрами
пример таблица на рис.1
а нужно получить (например все товары у которых количество равно 11) рис.2.
Попробуйте решить сами на языке 1С.
ОТВЕТ:
Ехсел.Range("C5:D5").AutoFilter (); //создаем автофильт
Ехсел.Range("C5:D5").AutoFilter (2,"11"); //указаваем столбец и значение фильтр