Variablen in Definition eines Variants
Phil
- vb-script
Hi liebes Forum,
ich habe heute mal ne Frage zum Thema VBA (Ich glaube unter VB-Script passt das am besten ;-))
Ich habe folgende Situation:
Ein Word Makro liest aus einem Excel-Spreadsheet alle Zelleninhalte aus, und soll diese in einem Array speichern. Das Array ist IMHO unter VB ein seeehr merkwürdiges Ding, wenn ich das richtig verstanden habe, ist dass was man (ich) unter einem Array versteht am ehesten im Datentyp Variant zu finden.
Jetzt zu meinem Problem:
1. Ich habe keine Ahnung von VB ;-)
2. Ich möchte, dass die Größe des Arrays sich an der Größe des Spreadsheets orientiert, da ich weder Zellen unbeachtet lassen kann, noch Speicher verschwenden will, weil ich das Array riesig deklariere.
Ich habe folgendes versucht:
Ich lese aus dem Spreadsheet die Menge der Zeilen und Spalten aus.
ProdReq.Cells.SpecialCells(xlCellTypeLastCell).Activate
last_row = ReqSpecApp.ActiveCell.Row
last_column = ReqSpecApp.ActiveCell.Column
Dann versuche ich, diese Variablen (Die mit Integern gefüllt sind) bei der Deklaration des Variants zu Nutzen:
Dim varReqs(4 To last_row, 1 To last_column) As Variant
Das schlägt allerdings fehl, der Debugger meint: "Konstanter Ausdruck erforderlich".
Sehr unflexibel, muss ich schon sagen ;-)
Also meine Frage: Wie kriege ich es hin, dass ich bei der Deklaration eines Variant andere Variablen benutzen kann?
Wäre über Lösungen, Anregungen, Ideen oder Surftips sehr glücklich :o)
Vielen Dank im voraus!
Gruß
Phil
Hi
[...] Das Array ist IMHO unter VB ein seeehr merkwürdiges Ding, [...]
Ja. Betätige F1 im Makro-Editor und suche im Index nach ReDim. Damit lässt sich die Grösse eines Arrays verändern.
FG
Tom2
Hi,
Viiieelen Dank, funktioniert super!!
Gibt es einen Grund, wieso ich zwar in ReDim, nicht aber in Dim Variablen benutzen kann?
Gruß
Phil
Hallo!
Gibt es einen Grund, wieso ich zwar in ReDim, nicht aber in Dim Variablen benutzen kann?
Nix Genaues weiß ich nicht, aber ich denke das hängt mir early-bound and late-bound zusammen. redim dürfte late-bound vertragen, dim nicht.
Beste Grüße
Viennamade
Hi,
richtig, da habe ich doch auch mal was drüber gelesen *MSDNaufmac*
Wie gut, dass ich normalerweise _nicht_ in VBA programmieren muss.
Ich persönlich mags nicht!
Danke für Eure Hilfe!
Gruß
Phil
Hi Phil
Ich persönlich mags nicht!
Man gewöhnt sich daran. Wenn man sich selbst ein paar Vorgaben bezüglich Stil setzt ist es gar nicht so schlimm (bis auf die kleinen 'Eigenheiten'/Bugs von VBA).
Mein neuer Spielkamerad ist übrigens Perl, der mich immer wieder auf's neue überrascht (ich bin aber wirklich noch grün hinter den Ohren). Heute hab ich zwei XML-Module installiert... es gibt viel zu tun.
Cya
Tom2
Hoi,
Man gewöhnt sich daran. Wenn man sich selbst ein paar Vorgaben bezüglich Stil setzt ist es gar nicht so schlimm (bis auf die kleinen 'Eigenheiten'/Bugs von VBA).
Meinst du mit Vorgaben Option Explicit und Finger weg von GoTos? =)
Mein neuer Spielkamerad ist übrigens Perl, der mich immer wieder auf's neue überrascht (ich bin aber wirklich noch grün hinter den Ohren). Heute hab ich zwei XML-Module installiert... es gibt viel zu tun.
Da möchte ich mich auch demnächst mal ranwagen, traue mich aber irgendwie nich so recht :)
Gruß
Phil