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

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

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

В наличии

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

В связи с большим количеством комментариев у данной публикации, решил выложить то, что, по моему мнению, не должно «утонуть» в потоке информации: 

Пост (44) Рассказывает нам где находится файл FUNCS.XLS  — который содержит полезную информацию по формулам EXCEL  — прислал  gaglo

Пост (55) Подарил на ссылку на замечательную Функция по возврату констант EXCEL — прислал JohnyDeath

Пост (59) Добавил ссылку на русскоязычный сайт посвященный EXCEL — прислал an77

Пост (61) Еще одна ссылка на сайт, посвященный работе с макросами

has been added to your cart:
Оформление заказа