новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Как из 1С записать формулу в ячейке MS EXCEL

  • Добавить свою публикацию
  • для этого требуется регистрация

Часто слышу этот вопрос , как сделать , как написать !

Объяснить мне сразу трудно - поэтому давайте "на пальцах"

Свежий простой пример  :

 вопрос "

Ексель.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"); //указаваем столбец и значение фильтр

 

 
0
Читайте также
Запросы и их обработка
Когда работают одновременно кассир, деспетчера.. программа зависает в нетиповой конфигурации
Программирование 1с
Программирование 1С это постоянный анализ действующих процессов, подбор методов для решения проблем
Разработки
Как из 1С правильно УКАЗАТЬ MS EXCEL как нужно печатать документы !
Как правильно из 1С печатать документы .xml в EXCEL
Сжимаем файл MS EXCEL
Обработка показывает, как программно сжать файл EXCEL с картинками
Еще от автора
≡ к списку статей