|
Excel VBA и 1С | ☑ | ||
---|---|---|---|---|
0
igwtbox
21.10.19
✎
15:33
|
Нужна помощь. Не могу понять, в чем ошибка. Код ниже ругается "Метод объекта не обнаружен (InsertLines)":
Application = Новый COMОбъект("Excel.Application"); Workbook = Application.Workbooks.Add(); Component = Workbook.VBProject.VBComponents.Add(1); Component.Name = "Test222"; Module = Component.CodeModule; Module.InsertLines(1, "Sub Test"); Module.InsertLines(2, " MsgBox(123)"); Module.InsertLines(3, "End Sub"); Application.Visible = 1; Причем аналогичный код для Word выполняется на отлично. Плиз, хэлп! |
|||
1
Garykom
гуру
21.10.19
✎
15:38
|
AddFromString попробуй вместо построчного
|
|||
2
igwtbox
21.10.19
✎
15:42
|
"Метод объекта не обнаружен (AddFromString)"
|
|||
3
igwtbox
21.10.19
✎
15:43
|
Причем,
Доверять доступ к объектной модели проектов VBA = Включен. Параметры макросов = Включить все макросы. |
|||
4
Garykom
гуру
21.10.19
✎
15:47
|
Workbook.VBProject.VBComponents.Item("ThisWorkbook").CodeModule.AddFromString(Код) ?
|
|||
5
igwtbox
21.10.19
✎
15:55
|
Workbook.VBProject.VBComponents.Item("ЭтаКнига").CodeModule.AddFromString("Sub Test");
Workbook.VBProject.VBComponents.Item("ЭтаКнига").CodeModule.AddFromString(" MsgBox(123)"); Workbook.VBProject.VBComponents.Item("ЭтаКнига").CodeModule.AddFromString("End Sub"); Такая же ошибка: "Метод объекта не обнаружен (AddFromString)" |
|||
6
Garykom
гуру
21.10.19
✎
16:17
|
Ex=CreateObject("Excel.Application");
Исключение Сообщить(ОписаниеОшибки(),"!!!"); Предупреждение("Не удалось запустить MS Excel!"); Возврат; КонецПопытки; Состояние("Открытие файла..."); Попытка Wb=Ex.WorkBooks.Add(); Исключение Возврат; КонецПопытки; Ex.Visible=-1; Wb.Sheets(1).OLEObjects.Add("Forms.CommandButton.1",,,10, 99.75, 120.75, "Очистить");//27.75 st = "Private Sub CommandButton1_Click()" + Chr(13) + " ThisWorkbook.Sheets(1).Columns(""E:E"").AutoFilter Field:=1, Criteria1:="">0"", Operator:=xlAnd" + Chr(13) + "End Sub"; Ex.VBE.ActiveVBProject.VBComponents(Wb.Sheets(1).Name).CodeModule.AddFromString(st) https://1c-h.ru/2010/05/18/8-1-programmistu-yazyk-excel/ Может сначала надо кнопку добавить хоть одну? |
|||
7
igwtbox
21.10.19
✎
16:36
|
(6) Не всегда макросы должны запускаться с кнопки.
(6) "Поле объекта не обнаружено (OLEObjects)" |
|||
8
бегинер
21.10.19
✎
17:07
|
excel 2007 (12.0.6611.1000) SP3
у меня твой код работает, ошибок нет: Процедура Кнопка1Нажатие(Элемент) Application = Новый COMОбъект("Excel.Application"); Workbook = Application.Workbooks.Add(); Component = Workbook.VBProject.VBComponents.Add(1); Component.Name = "Test222"; Module = Component.CodeModule; Module.InsertLines(1, "Sub Test"); Module.InsertLines(2, " MsgBox(123)"); Module.InsertLines(3, "End Sub"); Application.Visible = 1; КонецПроцедуры |
|||
9
бегинер
21.10.19
✎
17:08
|
доступ включен:
http://school9korolev.moy.su/_nw/1/35038.jpg |
|||
10
бегинер
21.10.19
✎
17:10
|
может куча "excel невидимых" висит в процессах пока "игрался"?
прибей/перезагрузись |
|||
11
igwtbox
21.10.19
✎
17:15
|
(9) Да. Все правильно, включен
(10) Сейчас попробую перезагрузиться. Самое обидное, что есть вставляешь этот же текст в Word VBA, то все работает... Sub Macros1() Set ExcelApp = CreateObject("Excel.Application") Set Workbook = ExcelApp.Workbooks.Add() Set Component = Workbook.VBProject.VBComponents.Add(1) Component.Name = "Test222" Set Module = Component.CodeModule Module.InsertLines 1, "Sub Test" Module.InsertLines 2, " MsgBox(123)" Module.InsertLines 3, "End Sub" ExcelApp.Visible = 1 End Sub Т.е. ошибка где-то в связке 1С-Excel. |
|||
12
igwtbox
21.10.19
✎
17:21
|
(10) После перезагрузки та же история...
|
|||
13
Garykom
гуру
21.10.19
✎
17:24
|
(12) Значит у тебя Excel неправильный
|
|||
14
бегинер
21.10.19
✎
17:26
|
(12) антивирь не стоит касперский?
типа такого может шалит? http://rykovodstvo.ru/pars_docs/refs/52/51029/51029_html_m50919f.png т.е. не разрешает самому вирусню/код VBA писать отключи антивирь, перезапуск, проверь работоспособность |
|||
15
igwtbox
21.10.19
✎
17:32
|
(14) У меня Нортон. но для чистоты эксперимента отключил, перезагрузился - такая же фигня.
(13) Пойду искать правильный Эксель. |
|||
16
бегинер
21.10.19
✎
17:37
|
еще типа такого проверь у пользователя:
открываем оснастку "Службы компонентов" (Пуск->Администрирование->Службы компонентов) в ней раскрываем ветку Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM справа в списке находим Microsoft Excel Application, открываем Свойства, вкладка Удостоверение, выбираем "Текущий пользователь", ОК. |
|||
17
бегинер
21.10.19
✎
17:41
|
и перегруз
|
|||
18
igwtbox
21.10.19
✎
17:53
|
(16) Тоже не помогло.
|
|||
19
бегинер
21.10.19
✎
17:56
|
(18) блин :)
тогда тока (13) плиз реинсталл апликатион |
|||
20
Сияющий в темноте
21.10.19
✎
19:22
|
В справке к этомуExcel что написано?
вполне возможно,что надо другим способом в него лезть. |
|||
21
igwtbox
23.10.19
✎
12:21
|
Докладываю обстановку.
Выйти из положения удалось только таким способом: Workbook.VBProject.VBComponents.Import(ИмяФайла); Может кому пригодиться. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |