Avatar billede jespersahner Nybegynder
05. december 2002 - 14:47 Der er 9 kommentarer og
1 løsning

Eksekvering af eksternt exe-program fra Excel

Jeg har en ambition om at eksekvere et eksternt program (SAS) fra Excel. Programmet skal læse fra en fane og skrive i en anden. Denne del har jeg styr på, hvis jeg eksekverer programmet 'by hand'.

Jeg har forsøgt med flg. Visual Basic-macro:

Sub Makro1()
    MyAppID = Shell("c:\SAS.exe", 1)
    AppActivate ("MyAppID")
End Sub

Macroen virker bortset fra, at jeg får fejlmeddelsen "Kørselsfejl 5: Procedurekaldet eller argumentet er ugyldigt".

Hvis jeg accepterer fejlen, bliver mit SAS-program dog udført som ønsket.

Hvordan tilretter jeg min macro-kode? - eller er der en anden måde at gøre det på?

Jeg har læst lidt om DDE (Dynamic Data Exchange), men jeg kender næsten intet til Visual Basic.
Avatar billede sjap Praktikant
05. december 2002 - 16:41 #1
Skal det ikke blot være

AppActivate MyAppID
Avatar billede jespersahner Nybegynder
05. december 2002 - 18:41 #2
Har jeg prøvet uden succes, desværre.
Avatar billede sjap Praktikant
05. december 2002 - 18:53 #3
Kræver SAS nogen argumenter ved opstart?
Avatar billede sjap Praktikant
05. december 2002 - 18:55 #4
Har du evt. prøvet med andre programmer for at se om problemet er specifikt for SAS?
Avatar billede bak Forsker
05. december 2002 - 20:29 #5
Er det nødvendigt med activate?
1-tallet i første sætning, skulle jo sætte focus på det nye "vindue"
Avatar billede bak Forsker
05. december 2002 - 20:39 #6
Og ellers giver hjælpen superjab ret...
Dette her virker lige godt medeller uden AppActivate, så det er måske noget SAS-specifikt

Sub test()
Dim t
t = Shell("calc.exe", 1)
'AppActivate t
End Sub
Avatar billede bak Forsker
05. december 2002 - 20:49 #7
Forøvrigt, hvis du bruger parantesen og "" så skal der mellem apostrofferne stå det, der står i overskriften på den application du vil arbejde med.
Fx.

Sub test()
Dim t
t = Shell("calc.exe", 1)
AppActivate ("Lommeregner")
End Sub
Avatar billede Slettet bruger
06. december 2002 - 08:51 #8
Du kan godt nøjedes med at oprette spørgsmålet én gang
Dem der interesserer sig for VBA programering i Excel, abonnerer
(som regel) også på Visual Basic kategorien.

http://www.eksperten.dk/spm/291410
Avatar billede jespersahner Nybegynder
06. december 2002 - 18:24 #9
I har helt ret, det virker fint uden AppActivate. Jeg ved dog ikke, hvorfor det kun er superjap, der skal have point :-)
Avatar billede sjap Praktikant
06. december 2002 - 22:31 #10
Det ved jeg heller ikke, men jeg skal selvfølgelig ikke klage. Måske er det blot en tidlig julegave? :0)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester