![]() |
![]() |
![]() |
|
Как создать и запустить макрос Excel в 1С | ☑ | ||
---|---|---|---|---|
0
Barbossa
14.09.07
✎
11:07
|
Возможно ли ?
|
|||
1
Barbossa
14.09.07
✎
11:08
|
Пробовал такое - не получилось:
Мак=Excel.VBE.ActiveVBProject.VBComponents.Count()+1; Excel.VBE.ActiveVBProject.VBComponents.Add(1); стр=Excel.VBE.ActiveVBProject.VBComponents(Мак).CodeModule; стр.InsertLines(1,"Sub Test()"); стр.InsertLines(2,"Range(""A1:K1"").Select"); стр.InsertLines(3,"With Selection.Font"); стр.InsertLines(4,".Name = ""Arial"); стр.InsertLines(5,".Size = 12"); стр.InsertLines(6,".Strikethrough = False"); стр.InsertLines(7,".Superscript = False"); стр.InsertLines(8,".Subscript = False"); стр.InsertLines(9,".OutlineFont = False"); стр.InsertLines(10,".Shadow = False"); стр.InsertLines(11,".Underline = xlUnderlineStyleNone"); стр.InsertLines(12,".ColorIndex = xlAutomatic"); стр.InsertLines(13,"End With"); стр.InsertLines(14,"End Sub"); Excel.Application.Run("Test"); |
|||
2
asady
14.09.07
✎
11:12
|
(1) Вроде макрос должен принадлежать книге
|
|||
3
asady
14.09.07
✎
11:13
|
(0) а вообще почитай внимательно Михайлова на стр.160-161 (1-е издание)
|
|||
4
Barbossa
14.09.07
✎
11:14
|
(3) нету ща его с собой. А делать надо.
|
|||
5
Armando
14.09.07
✎
11:23
|
||||
6
Леха Дум
14.09.07
✎
11:33
|
Сначала необходимо выполнить следующие действия в программе MS Excel: Открыть программу через меню Сервис-Парааметры-Безопасность-Безопасность макросов-Надежные издатели - установить флажок "Доверить доступ к Visual Basic Project". Ну а затем следующий код:
Макрос = "Sub ПодготовкаЛиста() | Dim RW | Dim P ************************ ************************ |End Sub"; WorkBook=Excel.Workbooks.Open(ПутьСохранения); VBComponents = Excel.ActiveWorkbook.VBProject.VBComponents; cntComp = VBComponents.Count(); Компонет = VBComponents.Add(1); VBComponents.Item(cntComp+1).CodeModule.InsertLines(1,Макрос); // Excel.Application.Run("ПодготовкаЛиста"); //не всегда отрабатывает так как ждешь - открываем файлик и выполняем макрос ручками :) // VBComponents.Remove(Компонет); //а затем удаляем его Excel.ActiveWorkbook.Save(); Excel.ActiveWorkbook.Close(); Excel.Quit(); таблицу mxl сохранял в ексель а затем открывал и вставлял макрос |
|||
7
smaharbA
14.09.07
✎
11:36
|
Зачем ? (с)
|
|||
8
Barbossa
14.09.07
✎
11:48
|
(6) Спасибо, теперь все робит.
|
|||
9
Леха Дум
14.09.07
✎
11:48
|
(7) я тоже не представлял - зачем, а вот потребовалось бланки заказа в ексель формировать для клиентов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |