Fehlerhaft Schleife in Zusammenhang mit Excel und UsedRange.Rows.count

  • Hallo,

    ich hab irgendwo in dieser Schleife einen Logikfehler, der sich meinem Kenntnisstand entzieht.

    [autoit]


    $xExcel = _ExcelBookOpen("C:\Testexcel.xls",0)
    $Letztezeile=($xExcel.Worksheets(1).UsedRange.Rows.Count & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    $j=0
    $l=$Letztezeile
    Do

    [/autoit][autoit][/autoit][autoit]

    $Status=_ExcelReadCell($xExcel,$l,7)
    if $Status <> "E0003" Then
    _ExcelRowDelete($xExcel,$l,1)
    EndIf
    $j=$j+1
    $l=($Letztezeile-$j)
    until $l=2

    [/autoit][autoit][/autoit][autoit]

    _ExcelBookClose($xExcel,1)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]

    Irgendwie scheint der Wert der Variablen $Letztezeile auf 0 gesetzt zu werden ohne ersichtlichen Grund.

    Hintergrund ist, ich möchte ein excel von unten nach oben durchsuchen und nur bestimmte Zeilen drin lassen.

    Kann mir da jemand auf die Sprünge helfen !?

    MFG

    Einmal editiert, zuletzt von Cerverus (29. November 2010 um 09:36)

  • So?

    Spoiler anzeigen
    [autoit]

    #include <Excel.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $oExcel = _ExcelBookOpen(@DesktopDir & "\Mappe1.xls", 0)
    $iRowCount = $oExcel.Worksheets(1).UsedRange.Rows.Count

    [/autoit] [autoit][/autoit] [autoit]

    For $i = $iRowCount To 1 Step -1
    $sRead = _ExcelReadCell($oExcel, $i, 1)
    If $sRead = "E0003" Then _ExcelRowDelete($oExcel, $i, 1)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    _ExcelBookClose($oExcel, 1)

    [/autoit]


    Musst nur die Spalte halt ändern und den Pfad zur Datei.

  • Ich bin perplex, der einzige richtige Unterschied zwischen unseren Codes ist das "@CLRF" am Ende des Befehls um die letzte Zeile zu ermitteln. Und natürlich nen andere Schleife.

    Ich hab alle möglichen Schleifenkonstruktionen drchgespielt, auch die for next, aber bei mir hat das nie hingehauen. Kann das echt an nur an diesem @CLRF liegen !?

    Aufjedenfall funktioniert dein Code, und ich bin höchst dankbar, dass dieses Schleifenproblem, dass mich nen halben Arbeitstag gekostet hat nun endlich gelöst ist. Vielen Dank.

    MFG

  • Hallo cerverus,

    schön, dann ist dein Problem ja gelöst, schön wäre es allerdings auch wenn du den Thread auf gelöst setzt. Einfach 1. Beitrag bearbeiten, Präfix (nähe Überschrift) ändern und speichern (absenden)

    mfg autoBert