Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

ReDimension von Array falsch?

    Betrifft: ReDimension von Array falsch? von: A. F.
    Geschrieben am: 02.09.2003 11:49:51


    Hallo,
    vielleicht hat jemand hier eine Ahnung was ich falsch mache.

    Ich will feststellen wieviele verschiedene Variablen es in einem Sheet gibt und diese in einem Array zwischenspeichern. Nur mit dem Befehl ReDim laeuft irgendwas falsch oder ist der Ansatz meines Programmes schon grundsaetzlich falsch?

    Der Code ist:

    Set ws = Worksheets("Daten_Pivot")
    ws.Activate
    Set pv1 = ws.PivotTables("PivotTable1")
    pv1.PivotSelect "VerschiedeneDaten[All]", xlLabelOnly

    For Each rowDaten In Selection.Rows
    datenfeld = rowDaten.Cells(1, 1)
    If datenfeld <> "" Then
    For iCounter = 0 To UBound(DatenArray)
    If DatenArray(iCounter) = datenfeld Then
    GoTo GoOut
    End If
    Next iCounter
    ReDim DatenArray(0 To iCounter)
    DatenArray(iCounter) = datenfeld
    GoOut:
    End If
    Next rowDaten

    Danke im Voraus fuer den Tipp ...

      


    Betrifft: AW: ReDimension von Array falsch? von: joel
    Geschrieben am: 02.09.2003 12:00:37

    hallo

    da du nicht schreibst, was falsch läuft, nehme ich an, es handelt sich um folgendes problem:

    mit "redim" änderst du die grösse eines arrays, löschst dabei aber den inhalt
    mit "redim preserve" hingegen behälst du die inhalte des arrays.

    schätze, das war dein fehler

    gruss


      


    Betrifft: AW: ReDimension von Array falsch? von: A.F.
    Geschrieben am: 02.09.2003 12:04:14

    Hallo Joel,

    Danke ich denke das war er!

    Gruss,
    A.F.


      


    Betrifft: AW: ReDimension von Array falsch? von: Hans W. Hofmann
    Geschrieben am: 02.09.2003 12:01:38

    Isch weiss nischt was Du flasch machst,
    aber wieso programmierst Du bereits vorhandene
    Lösungen, wie z.B: Countif, nach?
    Und wenn, dann würde sich eine Collection wesentlich
    besser dazu eignen...


    Gruß HW


      


    Betrifft: ReDim Preserve von: ChrisL
    Geschrieben am: 02.09.2003 12:07:06

    Hi ? (evtl. tom?)

    Erstmal gehe ich davon aus, dass es sich um ein eindimensionales Array handelt. Zweitens gehe ich davon aus, dass du das bestehende Array erhalten willst, weshalb ReDim Preserve richtig wäre.

    Dann solltest du auch mal den Wert von iCounter überprüfen (ReDim DatenArray(0 To iCounter)). M.E. sollte es heissen...

    ReDim Preserve DatenArray(iCounter + 1)
    oder
    ReDim Preserve DatenArray(UBound(DatenArray) + 1)

    Schliesslich solltest du unbedingt deine Variablen deklarieren falls nicht schon geschehen.

    Gruss
    Chris


     

    Beiträge aus den Excel-Beispielen zum Thema " ReDimension von Array falsch?"