Toon posts:

[VBA/Excel] Array vullen met objecten *

Pagina: 1
Acties:
  • 343 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Wie Weet er hoe ik in VBA onder excel een array kan vullen
met objecten?
Vul ik gewoon de naam van bv een checkbox in mijn array
en spreek ik later deze array weer aan dan
staat daar de waarde van mijn checkbox.
in code ziet het er als volgd uit:
aa = Array(CKBvoorblad, CKBinlegvel)

als ik later aa(1) aan wil spreken staat hier de waarde van mijn checkbox in in dit geval waar of onwaar. Maar ik wil heel het object CKBvoorblad aan kunnen spreken.

Als ik mijn array het volgende maak:
aa = Array(ckbvoorblad.object,CKBinlegvel.object)

en dan mijn array aanspreek met bv aa(1).name krijg ik de volgende error
Fout 438 tijdens uitvoering:
Deze eigenschap of methode word niet ondersteund door dit object.

Het lukt mij dus niet om een heel object in een array te zetten.
Wie weet hoe dit wel moet?
Is dit niet mogelijk hoe kan ik dan mijn objecten in een zelf gekozen volgorde aanspreken in een loop?

vriendelijke groeten richard Karelse

[ Voor 57% gewijzigd door Verwijderd op 10-12-2003 11:12 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Wat heb je zelf al geprobeerd?

Lees misschien dit eens door, zodat je weet hoe je hier een goede topicstart maakt.

[ Voor 74% gewijzigd door whoami op 10-12-2003 10:46 ]

https://fgheysels.github.io/


Verwijderd

Welke type heeft je array? En hebbie al geprobeert met een cast?

Verwijderd

Topicstarter
Verwijderd schreef op 10 december 2003 @ 11:14:
Welke type heeft je array? En hebbie al geprobeert met een cast?
heb mijn array niet gedeclareerd dus ook geen type mee gegeven.
welk type zou ik dan mee moeten geven??

Cast? :S heb in de VBA help van excel gezocht naar cast en kon het niet vinden zelf ken ik het ook niet?

gr
richard Karelse

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:14
Verwijderd schreef op 10 december 2003 @ 11:49:
[...]


heb mijn array niet gedeclareerd dus ook geen type mee gegeven.
welk type zou ik dan mee moeten geven??
Je geeft toch wel aan van welk type de objecten moeten zijn die je in de array wilt bewaren?
Cast? :S heb in de VBA help van excel gezocht naar cast en kon het niet vinden zelf ken ik het ook niet?
casten is bv dit:
C++:
1
(int)variable

Misschien moet je eens enkele basisprincipes ivm programmeren leren?
gr
richard Karelse
Je hoeft niet steeds de groeten te doen onder je post. Dat leest irritant.

https://fgheysels.github.io/


Verwijderd

Topicstarter
[quote]whoami schreef op 10 december 2003 @ 11:53:

[...]

Je geeft toch wel aan van welk type de objecten moeten zijn die je in de array wilt bewaren?

[...]


casten is bv dit:
C++:
1
(int)variable

Misschien moet je eens enkele basisprincipes ivm programmeren leren?
__________________________________________________________________


het opgeven van type objecten in VBA is niet verplicht maar ik zou niet beter weten dat dat je een array declareerd als variant. ook dit heb ik geprobeerd. maar heeft verder geen efect.

Zo heb ik net de volgende code nog uitgeprobeerd:

Dim aa As Variant
Dim bb As Object

aa = Array(CKBvoorblad)
bb = aa(0)

Hierbij gaf ie de volgende error op de regel waar ik BB de waarde van aa(0) wil geven.

Fout 91 tijdens uitvoering:

Objectvariabele of blokvariabele With is niet ingesteld

Ook als ik in mijn array de waarden tussen haakjes (") zet krijg ik de zelfde error

Ik ben een student en doe ICT opleiding, Zit nu voor het eerst op stage en heb dit als opdracht een Excel toepassing schrijven. Heb op school geen VB gehad en alleen kleine basis van delphi, in delphi kan je een array wel gewoon declareren als ARRAY of objejects. Maar kan dit ook in VBA en zo Ja hoe?

Verwijderd

Topicstarter
Heb na een paar keer uitproberen het probleem zelf gevonden.

als ik de namen van de checkboxen in de array laat staan
en daarna een variabele toe ken met bladnaam.controls(array variabele) dan
staat wel het hele opject in de variabele.

voorbeeld van de code voor alle duidelijkheid:

Visual Basic .NET:
1
2
3
4
5
6
Dim aa As Variant
Dim bb As Object

 aa = Array("CKBvoorblad")
Set bb = bladnaam.Controls(aa(0))
MsgBox bb.Name


iedereen tog bedankt voor de reacties.
Pagina: 1