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

Заранее благодарен за любую помощь!!!
...
Рейтинг: 0 / 0
Какой аналог OLEVariant есть в VBA?
    #36135249
Игнат,
Variant
...
Рейтинг: 0 / 0
Какой аналог OLEVariant есть в VBA?
    #36135423
Игнат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Какой аналог OLEVariant есть в VBA?
    #36135429
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно в Set. Т.к. он применяется, когда нужно присваивать объектные ссылки, хотя по моему тогда должна быть ошибка
"объект ожидается"


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

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

значит, 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
Какой аналог OLEVariant есть в VBA?
    #36135604
Игнат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
13-й квартал,

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

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


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