Gå til innhold

Koble til kjørende Excel-applikasjon


Anbefalte innlegg

Hei. La oss anta at jeg har flere excel-instanser åpne. Disse instansene inneholder hver sin arbeidsbok. Jeg ønsker å gjøre noe med hver av disse arbeidsbøkene (feks sette celle a1 til "hellow world").

 

Jeg skal ikke åpne nye .xlxs-filer, men koble til allerede åpne dokumenter (både ulagrede og lagrede).

 

Her har en kode som gjør det jeg fortalte over, for éi arbeidsbok:

 

$excel = [system.Runtime.InteropServices.Marshal]::GetActiveObject("Excel.Application")
$excel.Range("a1", "a1").value2 = "test"

 

problemet er at GetActiveObject returnerer ett objekt, dvs første arbeidsbok. For å få tak i neste arbeidsbok må jeg da lukke første arbeidsbok før jeg kjører samme kode en gang til.

 

Kan jeg få tak i et aktivt objekt ved hjelp av programiden istedet?

PS C:\Users\bjorninge> Get-Process excel

 

Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName

------- ------ ----- ----- ----- ------ -- -----------

872 25 23016 38992 224 4,13 2632 EXCEL

832 22 17440 33368 207 0,67 6176 EXCEL

828 25 18364 36380 212 3,95 7040 EXCEL

Hver av disse excel-instansene inneholder éi arbeidsbok

Endret av dabear
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...