回复 11# kevinch
还是报错!是不是用法要改?Local $aArray =_ExcelReadSheetToArray($oExcel)
我修改了UDF函数为Func _ExcelReadSheetToArray($oExcel, $iStartRow = 1, $iStartColumn = 1, $iRowCnt = 0, $iColCnt = 0, $iColShift = True)
Local $avRET[1][1]
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)
With $oExcel
$lastcell=.activesheet.cells.SpecialCells($xlCellTypeLastCell)
If $iStartRow>$lastcell.row Then Return SetError(2, 0, 0)
If $iStartColumn>$lastcell.column Then Return SetError(2, 1, 0)
If $iStartRow + $iRowCnt-1 > $lastcell.row Then Return SetError(3, 0, 0)
If $iStartColumn + $iColCnt-1 > $lastcell.column Then Return SetError(3, 1, 0)
If $iRowCnt=0 Then $iRowCnt=$lastcell.row-$iStartRow+1
If $iColCnt=0 Then $iColCnt=$lastcell.column-$iStartColumn+1
If .activesheet.cells($iStartRow,$iStartColumn).resize($iRowCnt,$iColCnt).cells.count=1 Then
$avRET[0][0]=.activesheet.cells($iStartRow,$iStartColumn).value
Else
$avRET=.activesheet.cells($iStartRow,$iStartColumn).resize($iRowCnt,$iColCnt).value
If $iColShift Then $avRET=$oExcel.application.transpose($avRET)
EndIf
EndWith
Return $avRET
EndFunc
|