VBA и 1с8.0

Программирование на Visual Basic for Applications
dimonl
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.03.2006 (Чт) 18:02

VBA и 1с8.0

Сообщение dimonl » 16.03.2006 (Чт) 18:23

Гуру помогите новичку! Нужно из 1с80 получить доступ к excel через com. В нем выполнить процедуру макроса и файл сохранить.

Знаю как плучить доступ:

xl = Новый COMОбъект("Excel.Application");
Книга=xl.Application.Workbooks.Open(ИмяФайла);
ТекЛист=Книга.WorkSheets(1);

xl.Application.Quit();

Но как выполнить в 1с8 скрипт на visual basic(макрос)?:

Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:= _
True


Не могу найти доков на эту тему! Помогите!

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 16.03.2006 (Чт) 18:29

Пробовал так?

Код: Выделить всё
ТекЛист.Columns("A:A").Select
ТекЛист.Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:= _
True
Быть... или не быть. Вот. В чём вопрос?

dimonl
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.03.2006 (Чт) 18:02

Сообщение dimonl » 16.03.2006 (Чт) 18:36

пробовал! При сохранении кода в конфигураторе 1с ошибки:

{Форма.Форма(164,34)}: Неопознанный оператор
ТекЛист.Columns("A:A").Select<<?>>;
{Форма.Форма(168,34)}: Неопознанный оператор
ТекЛист.Selection.TextToColumns <<?>>Destination:=Range("A1"), DataType:=xlDelimited, TextQua

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.03.2006 (Чт) 18:38

А с каких пор в 1С стали работать макросы на VB?
Lasciate ogni speranza, voi ch'entrate.

dimonl
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.03.2006 (Чт) 18:02

Сообщение dimonl » 16.03.2006 (Чт) 18:40

Посмотри ссылку:
http://1c.realnet.ru/kuban/138706.html

У них работает!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.03.2006 (Чт) 19:19

Во-первых, там не VB. Во-вторых, каждая строка завершается точкой с запятой.
Lasciate ogni speranza, voi ch'entrate.

dimonl
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.03.2006 (Чт) 18:02

Сообщение dimonl » 17.03.2006 (Пт) 9:15

Ну это VBA, а точкой с запятой я ставил. Может надо на форуме по 1с80 спрашивать?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.03.2006 (Пт) 9:25

Какой это нафиг VBA?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

dimonl
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.03.2006 (Чт) 18:02

Сообщение dimonl » 17.03.2006 (Пт) 9:34

Этот код из макроса в excel:

Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:= _
True

Насколько я знаю макрос на VBA!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.03.2006 (Пт) 9:35

Это макрос на VBA, а причём 1С к VBA?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

dimonl
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.03.2006 (Чт) 18:02

Сообщение dimonl » 17.03.2006 (Пт) 9:39

из 1с мне нужен доступ к файлу excel. Это таким образом делается:

xl = Новый COMОбъект("Excel.Application");
Книга=xl.Application.Workbooks.Open(ИмяФайла);
ТекЛист=Книга.WorkSheets(1);

далее мне надо этот файл обработать с помощью макроса.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.03.2006 (Пт) 10:23

Помоему ты сам не понимаешь, что тебе надо.
Lasciate ogni speranza, voi ch'entrate.

dimonl
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.03.2006 (Чт) 18:02

Сообщение dimonl » 17.03.2006 (Пт) 11:13

Нашел решение!

макрос переносить не обязательно его проще в экселе оставить.
запускается макрос из объекта
Application.Run("ИмяРабочейКниги!ИмяМакроса");
рабочую книгу надо перед этим открыть

Но не могу добиться результата!

файл KeuneR2.xls
книга KeuneR
макрос exel

Даю код:

xl = Новый COMОбъект("Excel.Application");
Книга=xl.Application.Workbooks.Open(KeuneR2.xls);
ТекЛист=Книга.WorkSheets(1);
xl.Application.Run("KeuneR!exel");

В 1с предприятии при запуске обработки ошибка:

{Форма.Форма(164)}: Ошибка при вызове метода контекста (Run): Произошла исключительная ситуация (Microsoft Excel): Не найден макрос 'KeuneR!exel'.
xl.Application.Run("KeuneR!exel");

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.03.2006 (Пт) 11:31

В модуль макрос...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

dimonl
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 16.03.2006 (Чт) 18:02

Сообщение dimonl » 17.03.2006 (Пт) 11:40

Что имелосьв виду?
В модуль макрос...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 17.03.2006 (Пт) 12:04

Макрос - в модуль...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 65

    TopList