Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как передать параметр ? / 6 сообщений из 6, страница 1 из 1
04.01.2010, 17:43
    #36396991
dima-k5
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметр ?
local loExcel, lcMacros
Привет всем и с Новим Годом !

был на форуме такой пример :

text to lcMacros noshow pretext 3
Sub tt()
MsgBox ("cfff")
End Sub
endtext
strtofile(lcMacros, "c:\new.bas")

loExcel = CREATEOBJECT("Excel.Application")
with loExcel
.visible = .t.
.Workbooks.Add()
.ActiveWorkBook.VBProject.VBComponents.import ("c:\new.bas")
.run("tt")
endwith


return
**********************
а как мне передать значение в Sub ? - если к примеру Sub tt(my_parameter) - то как запустить Run ?
...
Рейтинг: 0 / 0
05.01.2010, 07:35
    #36397467
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметр ?
А почему бы не формировать текст макроса сразу в процедуре фокса вместе с параметром, а затем запускать его на исполнение ?
Возможно вместо CreateObject придется использовать команду NewObject.
...
Рейтинг: 0 / 0
05.01.2010, 07:55
    #36397469
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметр ?
Извиняюсь, конечно же не NEWOBJECT, а GETOBJECT

Некоторые серверные приложения каждый раз, когда вы выдаете GETOBJECT( ) запускают дополнительный экземпляр приложения, используя дополнительную память. Если приложение уже запущено, вы можете предотвратить старт дополнительного экземлпяра приложения, опустив FileName и включив ClassName, как показно в примере ниже:

oleApp = GETOBJECT(, "Excel.Application")
...
Рейтинг: 0 / 0
05.01.2010, 13:04
    #36397685
Zmej
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметр ?
dima-k5l
.run("tt")
**********************
а как мне передать значение в Sub ? - если к примеру Sub tt(my_parameter) - то как запустить Run ?
По идее, через запятую в методе Run можно передать до 30 параметров - т.е. где-то так:
.run("tt", param1)
...
Рейтинг: 0 / 0
05.01.2010, 13:32
    #36397730
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметр ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
text to lcMacros noshow pretext  3 
	Sub tt(Optional cMessage as String)
	If cMessage<>"" Then
		MsgBox (cMessage)
	endIf
	End Sub
endtext
strtofile(lcMacros, "c:\new.bas")

loExcel = CREATEOBJECT("Excel.Application")
with loExcel
	.Workbooks.Add()
	.ActiveWorkBook.VBProject.VBComponents.import ("c:\new.bas")
	.run("tt",'куку')
	.run("tt",'трали вали')
endwith


return 
...
Рейтинг: 0 / 0
05.01.2010, 13:53
    #36397767
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать параметр ?
> Автор: прошелмимо

Забыл добавить, что перед выполнением кода нужно в екселе меню "Сервис" пункт "Макрос" пункт "Безопасность" на закладке
"Надежные издатели" поставить птицу "Доверять доступ к Visual Basic Project"

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как передать параметр ? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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