Hallo,
Ich muss einige Exceldateien in ein Array schreiben lassen. Die Exceldateien liegen mir "unbearbeitet" vor, d.h. ich muss auslesen, was ich bekomme. Hierbei gibt es einige Zellen, die sich auf Grund einer Formel befüllen. Mir ist dabei aufgefallen, das es Zellen gibt, die Fehlerhaft sind, d.h. in der Zelle steht nur #NV und links oben das kleine Dreieck mit "Fehler: Der Wert ist nicht verfügbar".
Wenn ich diese Felder komplett lösche und das Excel nochmals speichere, dann wird alles sauber ins Array geschrieben. Da ich diesen händischen Schritt aber nicht machen kann, wollte ich mal fragen, wie ich hier mit einer Fehlerbehandlung umgehen kann. Als erstes habe ich mal folgendes versucht, aber das haut noch gar nicht hin:
[autoit]Global $aFolder = _GetFilesFolder_Rekursiv('.', 'xlsx', 0, 0); Suche XLSX Dateien ab dem Root Verzeichnis wo diese Datei hier liegt
;~ _ArrayDisplay($aFolder, "Gefundene XLSX Dateien")
Local $Counter = 1; Setze Counter auf 1
For $i = 1 To UBound($aFolder) - 1
;~ ConsoleWrite("Counter: " & $Counter & " " & $aFolder[$i] & @CRLF)
Local $oExcel = _ExcelBookOpen($aFolder[$i]) ;Create new book, make it visible
;~ Local $iNumberOfWorksheets = $oExcel.Worksheets.Count
;~ MsgBox($MB_SYSTEMMODAL, "Count", "Number of sheets found = " & $oExcel.Worksheets.Count)
_ExcelSheetActivate($oExcel, 1)
Local $aArray = _ExcelReadSheetToArray($oExcel) ;Using Default Parameters
If @error = 0 Then
MsgBox(0, "Kein Fehler", "alles OK")
EndIf
If @error = 1 Then
MsgBox(4096, "Fehler", "Specified object does not exist")
EndIf
If @error = 2 Then
MsgBox(4096, "Fehler", "Start parameter out of range")
EndIf
If @error = 3 Then
MsgBox(4096, "Fehler", "Count parameter out of range")
EndIf
_ArrayDisplay($aArray, "Excel ausgelesen")
_ExcelBookClose($oExcel) ; And finally we close out
$Counter = $Counter + 1
Next
Es sind *.XLSX Dateien aus Office 2013 mit AutoIt Version: 3.3.10.2.