Excel VBA Array Werte verschwinden

Diskutiere und helfe bei Excel VBA Array Werte verschwinden im Bereich Microsoft Office im Windows Info bei einer Lösung; Hallo, NG, ich habe hier ein ganz komisches Problem. Ich habe ein Array, das ich mit Werten in einer Schleife befülle: For cntZaehler = 1 To... Dieses Thema im Forum "Microsoft Office" wurde erstellt von SIH007, 26. Januar 2017.

  1. SIH007
    SIH007 Gast

    Excel VBA Array Werte verschwinden


    Hallo, NG,


    ich habe hier ein ganz komisches Problem. Ich habe ein Array, das ich mit Werten in einer Schleife befülle:


    For cntZaehler = 1 To intZeilen
    If Len(rng.Cells(cntZaehler, 1).Text) > 3 Then
    X = X + 1
    ReDim strPruefung(X)
    strPruefung(X) = rng.Cells(cntZaehler, 1).Text
    Debug.Print strPruefung(X)



    End If
    Next
    MsgBox strPruefung(5)


    Über den Befehl Debug.Print innerhalb der Schleife kriege ich alle gefundenen Werte angezeigt, d. h. ich gehe davon aus, dass sie jeweils im entsprechenden Feld gespeichert sind. Ich bekomme etwa 50 verschiedene Werte, d. h. strPruefung(1) bis strPruefung(50) sollten Werte gespeichert haben.


    Nach der Schleife habe ich (nur wegen der besseren Lesbarkeit) die Msgbox eingefügt, um zu überprüfen, ob einzelne Felder Werte haben - was ich ja eigentlich schon innerhalb der Schleife verifiziert habe. Aber, wenn ich nicht gerade das letzte Feld angebe, bleibt die Messagebox immer leer. Wie kann das sein, dass die Werte außerhalb der Schleife nicht mehr da sind? Wäre super, wenn jemand das Problem kennt, ich zerbreche mir schon geraume Zeit darüber den Kopf.


    Gruß

    Susanne
     
  2. Claus Busch Win User

    Excel VBA Array Werte verschwinden

    Hallo Susanne,

    probiere es mal mit:

    ReDim Preserve strPruefung(X)

    Claus
  3. Andreas Killer Win User

    Excel VBA Array Werte verschwinden

    Über den Befehl Debug.Print innerhalb der Schleife kriege ich alle gefundenen Werte angezeigt, d. h. ich gehe davon aus, dass sie jeweils im entsprechenden Feld gespeichert sind. Ich bekomme etwa 50 verschiedene Werte, d. h. strPruefung(1) bis strPruefung(50)
    sollten Werte gespeichert haben.
    Du solltest Dich mal mit dem Debugger beschäftigen (Mit F8 den Code schrittweise ausführen, Shift_F9 Variablen überwachen, etc.)

    Bei welchem Fehler fang ich an... da:

    ReDim strPruefung(X)

    Dieses ReDim erzeugt ein neues Array(Von bis X), das Array ist danach mit 0 gefüllt, sprich leer.

    Die Werte bleiben jedoch nur erhalten wenn man ReDim ein Preserve kommt.

    Wenn Du Preserve benutzt, dann muss das Array vorher schon einen Inhalt haben, ansonsten gibt es einen Fehler.

    Daher initialisiert man es via strPruefung = Array() was mich zum Nächsten bringt:

    Dein X ist vermutlich nicht initialisiert, daher auch 0 und bei der ersten Zuweisung machst Du X=X+1

    Dein Array ist aber 0..X, d.h. das erste Feld im Array wird bei Dir nie benutzt.

    Es seid denn Du hast Option Base 1 im Modul gesetzt.

    Damit hast Du ggf. ein echtes Problem:

    If Len(rng.Cells(cntZaehler, 1).Text) > 3 Then

    strPruefung(X) = rng.Cells(cntZaehler, 1).Text

    Du hast bestimmt schon mal eine Zelle gesehen die "####" zeigt und die .Text Eigenschaft liefert Dir in diesem Fall das #### statt des eigentlichen Inhaltes. Nimm die .Value Eigenschaft.

    Langsam ist das ganze auch, aber bei 50 Werten... naja, da lohnt keine Optimierung.

    Und wie geht's jetzt weiter? Postest Du mal das ganze Makro?

    Andreas.
  4. Claus Busch Win User

    Excel - Zellengröße fixieren

    Hallo,

    erstens ist der Excel-Schutz nicht 100%-ig. Zweitens müsstest du die Zellen sperren und damit wäre eine Bearbeitung nicht mehr möglich.

    Schreibe deine Zeilenhöhen und Spaltenbreite jeweils in ein Array und lasse vor dem Schließen der Mappe die Zellen mit VBA wieder auf die gewünschte Höhe und Breite einstellen.

    Claus
  5. Claus B. Win User

    Welche Funktionen überprüfen alle Zellen einer Tabelle genau auf mehrere Bedingungen?

    Hallo Enrico,
    wie du siehst bekommst du, wenn du FINDEN alleine eingibst ein Array von Werten zurück. ANZAHL zählt nun in diesem Array die Zahlenwerte.
    Ist dieser Wert größer 0 hast du mindestens einen Treffer.
    Wenn dir das nicht weiterhilft, stelle mal die Originalmappe zur Verfügung, denn in der Demo-Mappe funktioniert es ja.
    Claus
  6. Claus B. Win User
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Excel VBA Array Werte verschwinden - Microsoft Office

Die Seite wird geladen...

Excel VBA Array Werte verschwinden - Similar Threads - Excel VBA Array

Forum Datum

Zellfarbe als Wert ausgeben ohne VBA

Zellfarbe als Wert ausgeben ohne VBA: Hallo Zusammen, ich möchte gerne eine Zellfarbe bzw. Hintergrund als Wert ausgegeben haben. Beispiel: Zelle A1 Hintergrundfarbe Weiß = Wert 0 Dachte an so etwas =WENNZELLE"farbe";A1=0;0;"X"Zelle...
Microsoft Office 17. März 2023

Wie lässt sich ein Array per Excel VBA mehrstufig 2 Kriterien sortieren?

Wie lässt sich ein Array per Excel VBA mehrstufig 2 Kriterien sortieren?: Hallo,ich habe ein zweidimensionales Array 1000, 40 , welches nach der Spalte 38 Double Wert und Spalte 39 Double Wert aufsteigend sortiert werden soll. Eine einstufige Sortierung mache ich...
Microsoft Office 8. Dezember 2022

VBA Excel dynamischen Array definieren

VBA Excel dynamischen Array definieren: Guten Tag,ich habe derzeit Probleme ein zweidimensionales dynamisches Array zu redifinieren.Könnte mir bitte jemand einen funktionierenden Code zukommen lassen?Mit freundlichen GrüßenMSC
Microsoft Office 14. Dezember 2021

Excel2019 VBA: Dynamisches Array wird durch Methode Add.OLEObject zerstört

Excel2019 VBA: Dynamisches Array wird durch Methode Add.OLEObject zerstört: Hallo zusammen, bei Anwendung der VBA-Methode Add.OLEObject in Excel2019 VBA werden vorher dimensionierte, dynamische Arrays zerstört, als ob die Methode ERASE angewendet wird. Kennt jemand den...
Microsoft Office 11. Oktober 2019

VBA Comboboxen auf Wert überprüfen.

VBA Comboboxen auf Wert überprüfen.: Hallo ich hoffe einer kann mir helfen. Ich habe eine Userform mit 3 Comboboxen und einem Textfeld. Ich will nun aus zb.: Hersteller, Typen, Sparte und Seriennummer mittels VLookup einen...
Microsoft Office 4. September 2019

VBA Excel Zellen ohne Wert nich auswählen

VBA Excel Zellen ohne Wert nich auswählen: Hallo werte Gemeinschaft Mein Problem: Ich habe Tabellen in welcher in einer Spalte Werte in verschiedenen Zeilen stehen können. Zelle mit Inhalt sollen gefunden werden um die benötigten Werte...
Microsoft Office 13. Juli 2019

Excel VBA – Mit CommandButton1_Click einen Wert in eine Zelle schreiben

Excel VBA – Mit CommandButton1_Click einen Wert in eine Zelle schreiben: Ich habe einen Datenbereich von A4:V10550. Wie kann ich in die Zelle A2 einen Wert (z.B 1) schreiben, wenn ich CommandButton1_Click() anklicke und beim Autofilter in der Spalte A4:A10550 Werte...
Microsoft Office 20. Februar 2019
Excel VBA Array Werte verschwinden solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.