Hallo Leute,
habe heute mal folgendes Problem mitgebracht:
Ich habe zwei Excel Tabellen in einem Dokument (Table1 und Table2). Table1 ist von 2009 und Table2 von 2010, in beiden Tabellen sind sogenannte ID's vorhanden. nun möchte ich die IDs aus 2009 mit denen aus 2010 abgleichen und eine neue Tabelle(2011, Table3) erstellen. Neben der ID sind allerdings noch andere Werte angegeben, von denen ich die neueren (2010) übernehmen möchte. und das ganze funktioniert auch halbwegs...
Ich habe folgenden Code:
Die Variablen werden bereits vorher im Code deklariert...
Meine Fehlervermutung sieht folgender Maßen aus:
Hier wird die Variable Zeile bis max(10) laufen und das tut sie auch. Anschließend wird 1 dazuaddiert. Da die Bedingung nun nicht mehr erfüllt ist wird die Do-While Schleife nicht erneut ausgeführt . Als nächstes wird der Wert von Zeile(aktuell 11) minus 1 als Wert von Zeiles eingesetzt. Mit Zeiles(aktueller Wert 10) soll nun in die Variable Wert einer der anderen Werte eingespeichert werden. Der anschließend in Table3 ausgegeben wird. Bis hierhein funktioniert auch alles nun passiert aber folgendes: Wird die äußere Do-While Schleife nun nochmal ausgeführt, so werden die gleichen Werte ausgegeben wie in Zeile eins(Tabelle3). Ich vermute daher das die nachfolgende Do-While Schleife erst unterbrochen wird wenn letztere Bedingung erfüllt ist.
Danke schonmal für eure Hilfe...
gruß Felix
//Edit
Der Fehler liegt definitv in der Do-While-Schleife. Es MÜSSEN IMMER beide Bedingungen True sein damit die Schleife läuft.. Ist dazu And nicht der richtige Operator?
habe heute mal folgendes Problem mitgebracht:
Ich habe zwei Excel Tabellen in einem Dokument (Table1 und Table2). Table1 ist von 2009 und Table2 von 2010, in beiden Tabellen sind sogenannte ID's vorhanden. nun möchte ich die IDs aus 2009 mit denen aus 2010 abgleichen und eine neue Tabelle(2011, Table3) erstellen. Neben der ID sind allerdings noch andere Werte angegeben, von denen ich die neueren (2010) übernehmen möchte. und das ganze funktioniert auch halbwegs...
Ich habe folgenden Code:
VB.NET-Quellcode
- Do While Row1 <= End1 = True
- Sheets(Tabelle1).Select
- OldNr = Cells(Row1, Col1).Value
- Sheets(Tabelle2).Select
- NewNr = Cells(Row2, Col2).Value
- Row1 = Row1 + 1
- Row2 = Row2 + 1
- Do While OldNr <> NewNr And Zeile <= End2 = True
- Sheets(Tabelle2).Select
- NewNr = Cells(Zeile, Col2).Value
- Zeile = Zeile + 1
- Loop
- ' If OldNr = NewNr Then
- nZeile = nZeile + 1
- Sheets(Tabelle3).Select
- Cells(nZeile, nSpalte).Value = NewNr
- Zeiles = Zeile - 1
- nSpaltes = 2
- Do While nSpaltes <= Co1E = True
- Sheets(Tabelle2).Select
- Wert = Cells(Zeiles, nSpaltes).Value
- 'MsgBox (Wert)
- Sheets(Tabelle3).Select
- Cells(nZeile, nSpaltes).Value = Wert
- nSpaltes = nSpaltes + 1
- Loop
Die Variablen werden bereits vorher im Code deklariert...
Meine Fehlervermutung sieht folgender Maßen aus:
Hier wird die Variable Zeile bis max(10) laufen und das tut sie auch. Anschließend wird 1 dazuaddiert. Da die Bedingung nun nicht mehr erfüllt ist wird die Do-While Schleife nicht erneut ausgeführt . Als nächstes wird der Wert von Zeile(aktuell 11) minus 1 als Wert von Zeiles eingesetzt. Mit Zeiles(aktueller Wert 10) soll nun in die Variable Wert einer der anderen Werte eingespeichert werden. Der anschließend in Table3 ausgegeben wird. Bis hierhein funktioniert auch alles nun passiert aber folgendes: Wird die äußere Do-While Schleife nun nochmal ausgeführt, so werden die gleichen Werte ausgegeben wie in Zeile eins(Tabelle3). Ich vermute daher das die nachfolgende Do-While Schleife erst unterbrochen wird wenn letztere Bedingung erfüllt ist.
Danke schonmal für eure Hilfe...
gruß Felix
//Edit
Der Fehler liegt definitv in der Do-While-Schleife. Es MÜSSEN IMMER beide Bedingungen True sein damit die Schleife läuft.. Ist dazu And nicht der richtige Operator?
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „default“ ()