Avatar billede kasperth Juniormester
23. august 2012 - 10:35 Der er 4 kommentarer og
1 løsning

Kalde funktion i andet dokument med array som argument

Hej eksperter,

Jeg har et dokument med en masse kode, som kører som en "motor" for nogle andre ark. Disse ark er tilpasset, så de udfører forskellige handlinger alt efter hvad arket skal kunne.

Fra de enkelte ark kalder jeg rutinerne/funktioner i "motoren" med application.run("NavnPåMakro", argumenter). I praksis laves en global string indenholdende argumentet.

I arket med "motoren" ligger der nogle koder, som virker ved hjælp af arrays. De enkelte ark sender en array til "motoren" som gennemløber denne array og returnerer en array med informaionter.... eller rettere - det var tanken!

VBA kommer med en fejl om, at man ikke kan lave en array global og dermed ikke sende den til det andet ark...

Hvad gør man så??

Min plan B er at de enkelte ark laver array'en om til en string (XXXX; XXXX; XXXX; XXXX; XXXX; XXX osv.) og splitter den i "motoren" igen.... men det ikke så køn en løsning...
Avatar billede supertekst Ekspert
23. august 2012 - 11:17 #1
Hvordan er det oprindelige array defineret?
Vis gerne koden..
Avatar billede kasperth Juniormester
23. august 2012 - 14:16 #2
Indtil videre er jeg kun nået til at se, om jeg overhovedet kan få det til at virke. Mit eksempel ser sådan ud:


I dokument a.docm ligger følgende kode i modul "M1":
-------------------------------
Global a As String
Sub test()

a = Array("Tekst1", "Tekst2")
MsgBox a(0)

d = Application.Run("module1.test2", a)

MsgBox d


End Sub
------------------------------
I document b.docm ligger følgende kode i modul "Module1" følgende kode_
------------------------------
Public Function test2(b)

test2 = "Værdien fra A er: " & b(0)

End Function
Avatar billede supertekst Ekspert
23. august 2012 - 14:27 #3
Jeg opfattede det som en fil med flere ark med hvert sit array?
Avatar billede kasperth Juniormester
23. august 2012 - 14:54 #4
Nej, det er intet problem. Sålænge det er i samme dokument, så virker det fint. Det er altsammen for at undgå, at koden skal ligge i en masse filer, så der kan fejlrettes ét sted.
Avatar billede kasperth Juniormester
26. august 2012 - 16:50 #5
Efter at den makro, hvori funktionen kaldes, er blevet indlæst som add-in, så er problemet løst.
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