Hallo
da ich auch das Problem hatte das _ExcelReadSheetToArray nicht mit einer Deutschen Excel version geht
habe ich eine Lösung Programmiert
Func _ExcelReadSheetToArray($oExcel, $iStartRow = 1, $iStartColumn = 1, $iRowCnt = 0, $iColCnt = 0, $iColShift = False)
Local $avRET[1][2] = [[0, 0]] ; 2D return array
; Test inputs
If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
If $iStartRow < 1 Then Return SetError(2, 0, 0)
If $iStartColumn < 1 Then Return SetError(2, 1, 0)
If $iRowCnt < 0 Then Return SetError(3, 0, 0)
If $iColCnt < 0 Then Return SetError(3, 1, 0)
; Get size of current sheet as R1C1 string
; Note: $xlCellTypeLastCell and $x1R1C1 are constants declared in ExcelCOM_UDF.au3
Local $sLastCell = $oExcel.Application.Selection.SpecialCells($xlCellTypeLastCell).Address(True, True, $xlR1C1)
; Extract integer last row and col
if $oExcel.Application.International(1)= 49 Then
Local $iLastRow = StringInStr($sLastCell, "Z")
Local $iLastColumn = StringInStr($sLastCell, "S")
else
Local $iLastRow = StringInStr($sLastCell, "R")
Local $iLastColumn = StringInStr($sLastCell, "C")
EndIf
$iLastRow = Number(StringMid($sLastCell, $iLastRow + 1, $iLastColumn - $iLastRow - 1))
$iLastColumn = Number(StringMid($sLastCell, $iLastColumn + 1))
; Return 0's if the sheet is blank
if $oExcel.Application.International(1)= 49 Then
If $sLastCell = "Z1S1" And $oExcel.Activesheet.Cells($iLastRow, $iLastColumn).Value = "" Then Return $avRET
else
If $sLastCell = "R1C1" And $oExcel.Activesheet.Cells($iLastRow, $iLastColumn).Value = "" Then Return $avRET
EndIf
; Check input range is in bounds
If $iStartRow > $iLastRow Then Return SetError(2, 0, 0)
If $iStartColumn > $iLastColumn Then Return SetError(2, 1, 0)
If $iStartRow + $iRowCnt - 1 > $iLastRow Then Return SetError(3, 0, 0)
If $iStartColumn + $iColCnt - 1 > $iLastColumn Then Return SetError(3, 1, 0)
; Check for defaulted counts
If $iRowCnt = 0 Then $iRowCnt = $iLastRow - $iStartRow + 1
If $iColCnt = 0 Then $iColCnt = $iLastColumn - $iStartColumn + 1
; Size the return array
ReDim $avRET[$iRowCnt + 1][$iColCnt + 1]
$avRET[0][0] = $iRowCnt
$avRET[0][1] = $iColCnt
If $iColShift Then ;Added by litlmike
; Read data to array
For $r = 1 To $iRowCnt
For $c = 1 To $iColCnt
$avRET[$r][$c - 1] = $oExcel.Activesheet.Cells($iStartRow + $r - 1, $iStartColumn + $c - 1).Value
Next
Next
Else ;Default for $iColShift
; Read data to array
For $r = 1 To $iRowCnt
For $c = 1 To $iColCnt
$avRET[$r][$c] = $oExcel.Activesheet.Cells($iStartRow + $r - 1, $iStartColumn + $c - 1).Value
Next
Next
EndIf
;Return data
Return $avRET
EndFunc ;==>_ExcelReadSheetToArray
der Code Basiert AutoIt Version: 3.2.3++, Excel.au3 v 1.5 (07/18/2008 @ 8:25am PST)