Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Какой аналог OLEVariant есть в VBA? / 7 сообщений из 7, страница 1 из 1
10.08.2009, 15:21
    #36135192
Игнат
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой аналог OLEVariant есть в VBA?
В Дельфях есть тип OLEVariant. А какой есть непосредственный аналог в VBA?

Заранее благодарен за любую помощь!!!
...
Рейтинг: 0 / 0
10.08.2009, 15:33
    #36135249
Какой аналог OLEVariant есть в VBA?
Игнат,
Variant
...
Рейтинг: 0 / 0
10.08.2009, 16:19
    #36135423
Игнат
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой аналог OLEVariant есть в VBA?
13-й квартал,

есть такая ситуация.


Dim MyCOM As Object
Dim MyResult As Variant
Set MyCOM = CreateObject("MY_COM.MY_COMServer")
Set MyResult = MyCOM.MyFunc

COM-сервер ("MyCOM ") написан на дельфях. Функция MyFunc возвращает значение типа OLEVariant. При этом в строке "Set MyResult = MyCOM.MyFunc" выводится ошиба Run-time error '13': Type mismatch

В чем здесь может быть проблема?
...
Рейтинг: 0 / 0
10.08.2009, 16:21
    #36135429
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой аналог OLEVariant есть в VBA?
Возможно в Set. Т.к. он применяется, когда нужно присваивать объектные ссылки, хотя по моему тогда должна быть ошибка
"объект ожидается"


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
10.08.2009, 16:28
    #36135444
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой аналог OLEVariant есть в VBA?
и что потом с результатом OLEVariant должно делаться? может надо объявить :

Код: plaintext
Dim MyResult As Object
...
Рейтинг: 0 / 0
10.08.2009, 17:05
    #36135556
Какой аналог OLEVariant есть в VBA?
Игнат,

значит, MyCOM.MyFunc() возвращает не вариант объектного подтипа, и надо применять не оператор Set, а оператор Let.
Скажем, следующий пример демонстрирует ошибку, приведённую Вами:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub test()
 Dim MyCOM As Object
 Dim MyResult As Variant
 Set MyCOM = CreateObject("Excel.Application")
 Set MyResult = MyCOM.Creator 'Если Set убрать или заменить на Let, ошибки не будет
 Debug.Print Hex$(MyResult)
 Set MyCOM = Nothing
End Sub
...
Рейтинг: 0 / 0
10.08.2009, 17:25
    #36135604
Игнат
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какой аналог OLEVariant есть в VBA?
13-й квартал,

это просто фердипердозно, что на этом свете есть такие люди как Вы - всё заработало!!!

Всем спасибо!!!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Какой аналог OLEVariant есть в VBA? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]