Avatar billede creationzone Nybegynder
20. juli 2006 - 13:56 Der er 1 løsning

VBA: Returner klasse-objekt fra funktion

Hej Eksperter

Jeg sidder med et problem der irriterer mig super meget.

Er i gang med at lave et program til at lave nogle rapporter, og her har jeg 4 klasser til at holde styr på data. Måden de hænger sammen på at at den første klasse indeholder en liste med elementer af den anden klasse, som indeholder en liste med elementer af den tredje klasse, osv.

Mit problem kommer når jeg vil returnerer et sådan element fra fx den øverste klasse.

Jeg har defineret min liste som:

Private data() as New Interval

Laver først en redim data(0) og fylder data i osv.
Når jeg så har lagt alle mine data ned i de her klasser, skal jeg hente dem ud igen. Til dette har jeg en funktion

public function getData(index) as Interval

getData = data(index)

end function

Men når jeg kalder den får jeg fejlen "Object variable or With block variable not set" på linjen hvor jeg returnerer.

Jeg har forsøgt mange forskellige ting, mener at det somme tider har noget at gøre med Set eller New i forbindelse med klasser, men har ikke kunne finde noget der løste problemet.

Har også prøvet bare at sige

getData = New Interval

Her får jeg samme fejl, hvilket jeg synes er meget sært.

Nogle der har en ide om hvad der galt?
Avatar billede sjh Nybegynder
20. juli 2006 - 14:28 #1
for det første.. der findes en funktion som hedder Data().. prøv med:

Private m_data() as New Interval

redim m_data(0)

public function getData(index) as Interval

Set getData = m_data(index)

end function
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
Kurser inden for grundlæggende programmering

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