|
подскажите, можно ли в екселе создать макрос, который потом вызвать из 1с |
☑ |
0
маленький_ в _чем_то
06.03.17
✎
15:57
|
вернул номер строки.
А вообще задача такова: есть лист(шаблон) , строки по датам, шапка может быть произвольной высоты(кол.строк), нужно понять,какой номер строки отражает конкретную запрашиваемую дату, чтоб потом уже писать адресно в ячейки. Вариант самому перебрать строки и прочитать из ячейки...
и как скопировать полностью строку(добавить) опять таки программно , сохраняя формулы шаблона екселя ,если не нашел нужную дату,
ЗЫ: где почитать
|
|
1
Tatitutu
06.03.17
✎
16:09
|
Если ЭхселФайл.Существует() Тогда
ТекстМакроса = "Sub MyMakros()
|//тут пишишь свой макрос
|End Sub";
// Создание объекта
Excel = Новый COMОбъект("Excel.Application");
ExcelФайл = Excel.WorkBooks.Open(ИмяФайла);
ExcelФайл.Activate();
VBComponents = ExcelФайл.VBProject.VBComponents;
Count = VBComponents.Count();
VBComponents.Add(1);
VBComponents.Item(Count + 1).CodeModule.InsertLines(1, ТекстМакроса);
Excel.Application.Run("ProtectSheet");
ExcelФайл.CheckCompatibility = False;
Попытка
ExcelФайл.Save();
ExcelФайл.Close();
Сообщение.Текст = "Операция по написанию макроса завершена";
Исключение
КонецПопытки;
|
|
2
Tatitutu
06.03.17
✎
16:10
|
(1) Excel.Application.Run("ProtectSheet");
замени на
Excel.Application.Run("MyMakros");
|
|
3
маленький_ в _чем_то
06.03.17
✎
16:23
|
я так понимаю , что если сам макрос я создам ранее в екселе,то вызов будет аналогичен.А как дату передать в качестве параметра?
т.е. Excel.Application.Run("MyMakros"); где здесь засунуть параметр?
|
|
4
GrVas
06.03.17
✎
16:24
|
(3) нНаверно можно это значение передать через ячейку таблицы.
|
|
5
маленький_ в _чем_то
06.03.17
✎
16:29
|
4:очевидное решение, но сейчас придет гуру (2) ( спасибо ) и ткнет в не очевидное, но описанное ,где то в мануале.
|
|