Phil: Variablen in Definition eines Variants

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

--
ich bin ein nachmacher: http://www.eppstein.de
  1. 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

    --
    SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
    ss:| zu:) ls:& fo:) de:] va:) ch:] sh:( n4:& rl:° br:> js:| ie:% fl:( mo:}
    1. Hi,

      Viiieelen Dank, funktioniert super!!

      Gibt es einen Grund, wieso ich zwar in ReDim, nicht aber in Dim Variablen benutzen kann?

      Gruß

      Phil

      --
      ich bin ein nachmacher: http://www.eppstein.de
      ie:% fl:( br:& va:} ls:< fo:) rl:( n4:{ ss:| de:] js:| ch:? mo:} zu:(
      1. 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

        1. 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

          --
          ich bin ein nachmacher: http://www.eppstein.de
          ie:% fl:( br:& va:} ls:< fo:) rl:( n4:{ ss:| de:] js:| ch:? mo:} zu:(
          1. 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

            --
            #shebang...
            foreach (1..99){ print $_ . ' bottle' . ($_==1 ? '':'s') . " of beer\n"}
            1. 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

              --
              ich bin ein nachmacher: http://www.eppstein.de
              ie:% fl:( br:& va:} ls:< fo:) rl:( n4:{ ss:| de:] js:| ch:? mo:} zu:(