Hallo,
ich habe ein Programm, welches verschiedene Exceldateien vergleicht und die Ergebnisse filtert und in eine neue Tabelle einträgt. Allerdings werden beim Schreiben in diese neue Tabelle nicht alle Daten gespeichert. Daher wollte ich fragen, ob jemand hier einen Fehler finden kann:
Spoiler anzeigen
$iForExcel = 0
Func _Auslesen($sName)
$aPfad = _FileListToArray($sPfad & "\", '*.xls', 1)
$oNewWb = _Excel_BookNew($oAppl, 1)
For $k = 1 To UBound($aPfad) - 1
$iForExcel = $iForExcel + 1
Global $oCompWb = _Excel_BookOpen($oAppl, $sPfad, False, False)
Global $aInhalt = _Excel_RangeRead($oCompWb, 1, $oWorkbookDomain.ActiveSheet.Usedrange.Columns("B:B"), 2)
_Excel_BookClose($oWorkbookDomain)
_ArraySort($aInhalt, 1)
$aInhalt = _ArrayUnique($aInhalt)
_ArrayDelete($aInhalt, 1)
;Prüfen, ob $sName vorhanden ist
$iName = _ArrayFindAll($aInhalt, $sName, Default, Default, Default, Default, 0)
If $iName < 0 Then
_Excel_RangeWrite($oNewWb, Default, $sName, "C" & $iForExcel) ;Wenn nicht, Name in Zelle C und $iForExcel (wird mit jedem Schleifendurchlauf hochgezählt)...
_Excel_RangeWrite($oNewWb, Default, "Keine Daten", "D" & $iForExcel) ;...und Daten in Zelle D und $iForExcel eintragen (im ersten Durchlauf C1 und D1 z.B.)
Else
$sComp = StringTrimRight($aPfad[$k], 4)
_Excel_RangeWrite($oNewWb, Default, $sName, "A" & $iForExcel) ;Sonst selbiges in A1...
_Excel_RangeWrite($oNewWb, Default, $sComp, "B" & $iForExcel) ;... und B1 machen
EndIf
Next
_Excel_BookSaveAs($oNewWb, @ScriptDir & "\netzwerkdaten.xls", Default, True) ;Workbook speichern unter "netzwerkdaten"
_Excel_BookClose($oNewWb)
EndFunc
Zur Erklärung:
Wenn $iName kleiner Null ist, sprich nicht im Array vorhanden ist, dann soll er in die Zeile C & D mit dem Namen und dem Hinweis "Keine Daten" schreiben. Wenn es nicht kleiner Null ist, dann soll in die Zelle A & B der Name gefolgt von den Daten stehen.
Natürlich soll für jedes dieser "Paare" eine neue Zeile begonnen werden. Allerdings schreibt er nur die Daten des letzten schleifendurchlaufes rein, immerhin jedoch in die richtigen Zellen...
Ich hoffe, ihr versteht mein Problem und könnt mir helfen.
Viele Grüße und Danke vorab,
der Robert
Edit: Bäume und Wald... Problem konnte ich selbst lösen! habe in der Schleife ja jedes mal ein neues Workbook erstellt und daher ist das alte jedesmal überschrieben worden...