Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

1

Передача параметра при вызове макроса Excel из Delphi

Версия для печати
Не в сети
Сообщений: 2
Благодарностей: 0
Предупреждений:
Из: Russia
Род занятий:

С Рождеством, уважаемые господа!
Вот пример вызова из Delphi6 макроса VBA Excel :

//******************
Wksheet: TExcelWorksheet;
Wkbook: TExcelWorkbook;
XlApp: TExcelApplication;
.......
Var
SomeStr : String;

procedure MyProc;
Var
NewValue : String;
begin
SomeStr := 'Hello!';
XlApp.Run('VBA_Sub',SomeStr);
NewValue := SomeStr;
end;
//***********************

Имеется макрос VBA_Sub, откуда надо вернуть в MyProc значение SomeStr = 'By!'

'**************************
Sub VBA_Sub(ByRef Vba_Param)
NewStr = Vba_Param

' ............. Здесь NewStr = "Hello!" (!!!)
Vba_Param = "By!"
End Sub
'***************************


Параметр передается по ссылке, но только в одну сторону. Почему SomeStr возвращается равным 'Hello!' вместо ожидаемого 'By!'?! (

Вызываю тот же VBA_Sub из макроса Makros1:

'***********************
Sub Makros1()
Dim ActualParam as String
ActualParam = "Hello!"
Call VBA_Sub(ActualParam)
NewStr = ActualParam ' ........NewStr действительно равна "By!".
End Sub
************************


Что здесь неправильно? Как вернуть новое значение параметра?

#16730   | 06.01.06 01:56
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.022 секунд (Общее время SQL: 0.009 секунд - SQL запросов: 57 - Среднее время SQL: 0.00016 секунд))
Top.Mail.Ru