Office: For Schleife mit Array

Helfe beim Thema For Schleife mit Array in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo ich versuche gerade meinen bisherigen Code zusammenzufassen/verkleinern. Kurze Zusammenfassung: In Tabelle "Rohdaten" stehen in der Spalte G... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von d3nz, 3. Oktober 2016.

  1. For Schleife mit Array


    Hallo

    ich versuche gerade meinen bisherigen Code zusammenzufassen/verkleinern.

    Kurze Zusammenfassung:
    In Tabelle "Rohdaten" stehen in der Spalte G 3-stellige Zahlen (Klasse) und in Spalte J andere Zahlen (Gewicht).
    Das Sub soll nun jeweils alle Gewichte einer Klasse summieren.

    Grundsätzlich funktioniert es. Nun möchte ich das Ganze wie gesagt zusammenfassen - mithilfe einer For-Schleife. Momentan sieht es wie folgt aus:

    Code:
    Ich weiß ich kann es noch kompakter machen, wenn ich auch die sumIf-Funktion in die Schleife packe, aber ich wollte das lieber nach und nach machen, damit ich nicht gleich 10 Fehler habe die ineinander verstrickt sind.

    Jetzt bekomme ich jedenfalls den Laufzeitfehler 9 "Index außerhalb des gültigen Bereichs".
    Folgende Zeile ist markiert: Code:
    Tabelle1 existiert und ist richtig geschrieben
    intZeile existiert auch, ist richtiggeschrieben, wurde deklariert und definiert
    ebenso arraySum und i

    Liegt der Array irgendwie außerhalb des Bereichs?

    Vielen Dank im Voraus!

    :)
     
  2. Hallo

    zum einen läuft ein Array von 0 bis 10 und nicht von 1 bis 11
    es sei denn du hast oben im Modul "Option Base" stehen dann zählt es von 1 an
    zum zweiten gehört die Zuweisung zum Array nach den SumIf
    denn vorher ist das Array leer

    so habe ich es getestet
    Code:
    MfG Tom
     
    Crazy Tom, 5. Oktober 2016
    #2
  3. ...ergänzend zu Tom's Bemerkungen...

    Wozu wird arrayKlasse benötigt? Ich ahne zwar, was Du damit bezwecken wolltest, aber die Ahnung wird nicht bestätigt....*Smilie

    Auch dieses Konstrukt ist fragwürdig:
    Code:
    Du benutzt für die Schleife intKlasse als Schleifenzähler, aber im Array arraySum benutzt Du i. Das ist unnötig.

    Mach es gleich so:
    Code:
     
  4. For Schleife mit Array

    Hallo

    so erfüllt es auch seinen Zweck

    Code:
    MfG Tom
     
    Crazy Tom, 5. Oktober 2016
    #4
  5. Hallo

    und noch ein bissel verkürzt und überflüssiges entfernt

    Code:
    MfG Tom
     
    Crazy Tom, 5. Oktober 2016
    #5
  6. Hallo,

    @Tom: Das mit ab 0 hätte ich wissen müssen. *rolleyes.gif*
    Zum Ändern der Reihenfolge. Ich dachte wenn ich im zweiten Schritt auch sumIf in die For-Schleife packe dann muss in der Schleife ja das Array durchlaufen werden und dafür müsste es ja vorher eine Zuweisung gegeben haben. *confused.gif*

    @R J: Im zweiten Schritt möchte ich sumIf auch in die For-Schleife packen und da muss sich zum Einen der Speicherort ändern (daher arraySum) und zum Anderen auch das Kriterium und dafür benötige ich dann arrayKlasse.
    Vielen Dank für den Tipp mit den 2 unnötigen Variablen. Ich war mir nicht sicher ob es schneller geht wenn das Programm eine eigene variable hat oder wenn es jedes mal 13 hinzuzählen muss. Im Nachhinein leuchtet es mir aber ein *grins

    Gruß Dennis
     
  7. Hallo zusammen,

    Code:
    Zellen einzeln zu befüllen ist nie schneller, als dies in einem Rutsch zu tun.

    Grüße
    EarlFred
     
    EarlFred, 5. Oktober 2016
    #7
  8. For Schleife mit Array

    Geht auch mit reiner Array-Formel:

    Code:
     
  9. Guten Morgen,

    ok. *boah

    also die letzten beiden Beiträge versteh ich nicht ganz. Wo ist da die Schleife? *confused.gif*

    Ich habe das Ganze jetzt so verkürzt (inkl. dem Beispiel von Tom (Loop für sumIf), dass es für mich nachvollziehbar ist, auch wenn ich mir das in 8 Monaten nochmal anschaue^^

    Code:
    Vielen Dank!*hands
     
  10. Hallo

    ich muss ja sagen dass ich grundsätzlich keinen Plan von Arrays habe
    wenn ich aber deinen Code anschaue, da fehlt in deinem Modul sicher
    ganz oben "Option Explicit"
    denn sonst würde dein Code in einen Fehler laufen

    diese Zeile
    Code:
    brauchst du nicht wenn du arraySum so deklarierst
    wenn du dir im Lokalfenster die Werte der einzelnen sum201 bis sum302 anschaust, wirst du feststellen, dass die Variablen leer sind
    Code:
    dann würde der Code so aussehen und funktioniert auch ohne Fehlermeldung
    Code:
    MfG Tom
     
    Crazy Tom, 5. Oktober 2016
    #10
  11. Also ich bekomme auch ohne Option Explicit keine Fehlermeldung.

    Aber danke für den Tipp mit Code:
    Hatte mir zwar gerade schon die Arbeit gemacht, alles per Hand einzu tippen, aber so sieht's auch schöner aus *Smilie
     
  12. Hallo

    kopier das hier mal in ein Modul und lass den Code laufen

    Code:
    und da bekommst du keine Fehlermeldung?

    MfG Tom
     
    Crazy Tom, 5. Oktober 2016
    #12
  13. For Schleife mit Array

    Hallo Tom,

    doch nun schon.
    Ich hatte verstanden, dass ich 'ne Fehlermeldung bekomme, wenn ich NICHT das Option Explicit habe.
     
  14. Hallo Dennis,

    warum nur so kompliziert? Die Ergebnisse erst in ein Array zwischenspeichern und dann sofort wieder herausholen und einzeln in die Tabelle zu schreiben ist nicht nur umständlich, sondern auch langsamer (was man bei den wenigen Daten zugegebenermaßen nicht merkt, bei größeren Daten sind einzelne Zellzugriffe aber ätzend langsam).

    Wenn, dann geh den direkten Weg:
    Code:
    Option Explicit erzwingt die Deklaration der verwendeten Variablen / Funktionen usw.

    Beschäftige Dich halt damit und stelle Fragen, wenn Du etwas nicht verstehst - dann erweiterst Du Deinen Horizont und es wird kein Problem mehr für Dich darstellen, es noch in 2 Jahren nachzuvollziehen.
    Wenn es Dich interessiert, geh den Code im Einzelschritt durch und schau Dir an, was sich bei den Variablen und im Arbeitsblatt so alles tut nach jeder Zeile.

    Grüße
    EarlFred
     
    EarlFred, 5. Oktober 2016
    #14
  15. Hallo,

    @ EarlFred: Danke. ich werd mir das nochmal angucken. Komme aber die nächsten Tage nicht dazu.
     
Thema:

For Schleife mit Array

Die Seite wird geladen...
  1. For Schleife mit Array - Similar Threads - For Schleife Array

  2. For Next Schleife

    in Microsoft Excel Hilfe
    For Next Schleife: Hallo zusammen, da bin ich wieder und wie kann es anders sein mit einem Problem. Ich habe eine Tabelle (im Anhang) dort soll die Werte in Zellen a/b/f kopiert werden und in die erste frei Zeile...
  3. Access For next Schleife

    in Microsoft Access Hilfe
    Access For next Schleife: Ich habe in einer Tabelle meine Spieler mit einer Spielernummer enthalten. Jeder Spieler hat als Bericht ein "Stammblatt", welches mit der Spielernummer aufgerufen wird. Ich möchte jetzt gerne...
  4. For Each Schleife Anstatt ActiveSheet festen Tabellenblattnamen benutzen

    in Microsoft Excel Hilfe
    For Each Schleife Anstatt ActiveSheet festen Tabellenblattnamen benutzen: Hallo , habe folgende Schleife geschrieben : Dim rngBereich As Range Dim rngZelle As Range Sub Test() Set rngBereich = ActiveSheet.Range(ActiveSheet.Cells(1, 1), _...
  5. For-Next-Schleife für Textfeldübertragung

    in Microsoft Access Hilfe
    For-Next-Schleife für Textfeldübertragung: Hallo zusammen, ich habe 20 Textfelder (txt1 bis txt20) und muss die in 20 andere Textfelder (txt1S bis txt20S) übertragen. Nun habe ich mir gedacht, dass ich das mit einer For-Next-Zähler machen...
  6. For Schleife nicht initialisiert

    in Microsoft Access Hilfe
    For Schleife nicht initialisiert: Hi, bräuchte dringend Hilfe. Ich sende per folgenden Befehl Emails raus.(per cdo) Blos jetzt auf einmal bringt er mir den Laufzeitfehler 92 mit For Schleife nicht initalisiert. Code: Option...
  7. Glücksrad mit VBA und For-Schleifen

    in Microsoft Excel Hilfe
    Glücksrad mit VBA und For-Schleifen: Hallo zusammen! Da ich hier immer Hilfe finde wende ich mich mal wieder mit folgendem Problem an euch: Ich möchte in Excel etwas auslosen. Das ansich ist auch kein Problem. Damit es etwas...
  8. "find and replace" mit "for-Schleife" kombinieren

    in Microsoft Word Hilfe
    "find and replace" mit "for-Schleife" kombinieren: Guten Tag miteinander, Ich bin grade dabei ein kleines Programm zu erstellen, dass alphabetisch durchgearbeitet wird und jedesmal eine Ersetzung durchführt. Hier ist der Code: Sub...
  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.
    Information ausblenden