Funktionreferenz


_Excel_RangeRead

Beschreibung anzeigen in

Liest den Wert, die Formel oder den dargestellten Text einer Zelle oder eines Bereichs von Zellen des angegebenen Arbeitsbuches und Arbeitsblattes

#include <Excel.au3>
_Excel_RangeRead ( $oWorkbook [, $vWorksheet = Default [, $vRange = Default [, $iReturn = 1 [, $bForceFunc = False]]]] )

Parameter

$oWorkbook Excel Arbeitsbuch-Objekt
$vWorksheet [optional] Name, Index des Arbeitsblattes oder Arbeitsblatt-Objekt aus dem gelesen werden soll. Wenn das Schlüsselwort auf Default gesetzt ist, wird das aktive Arbeitsblatt genutzt (Standard = Schlüsselwort Default)
$vRange [optional] Entweder ein Bereichs-Objekt oder ein A1 Bereich. Wenn auf Standard gesetzt, dann werden alle genutzten Zellen gelesen (Standard = Schlüsselwort Default)
$iReturn [optional] Was von der Zelle zurückgegeben werden soll:
    1 - Wert (Standard)
    2 - Formel
    3 - Der dargestellte Text
    4 - Wert2. Der einzige Unterschied zwischen Wert und Wert2 ist, dass Wert2 nicht die Datentypen für Währung und Datum nutzt
$bForceFunc [optional] True erzwingt, dass die _ArrayTranspose Funktion anstelle der Excel Transpose Methode genutzt wird (Standard = False)
    Siehe Bemerkungen für mehr Details.

Rückgabewert

Erfolg: Die Daten der angegebenen Zellen. Eine Zeichenkette von einer Zelle, ein 0-basiertes Array für einen Bereich von Zellen.
Fehler: 0 und setzt @error.
@error: 1 - $oWorkbook ist kein Objekt oder Arbeitsbuch-Objekt
2 - $vWorksheet Name oder Index ist falsch oder $vWorksheet ist kein Arbeitsblatt-Objekt. @extended ist auf den COM Fehlercode gesetzt
3 - $vRange ist falsch. @extended ist auf den COM Fehlercode gesetzt
4 - Parameter $iReturn ist falsch. Muss >= 1 und <= 4 sein
5 - Ein Fehler trat beim Lesen der Daten mit der transpose Methode auf. @extended ist auf den COM Fehlercode gesetzt
6 - Maximale Größe für ein AutoIt Array ist überschritten (2^24 = 16,777,216 Elemente)
7 - Ein Fehler trat beim Lesen der Daten mit der _ArrayTranspose Methode auf. @extended ist auf den COM Fehlercode gesetzt
8 - $iReturn = 3 kann nur eine einzelne Zelle zurückgeben. $vRange umfasst jedoch mehr als eine Zelle.

Bemerkungen

Parameter 2 wird ignoriert, falls Parameter 3 einen Bereich auf einem anderen Arbeitsblatt definiert, der dann in Parameter 2 angegeben wird.
Die Excel transpose Methode hat ein nicht dokumentiertes Limit an Anzahl von Zellen, die es transponieren kann (hängt von der Excel Version ab).
Wenn mehr als 65535 Zellen transponiert werden, dann wird $bForceFunc automatisch vond er Funktion auf True gesetzt.
Die Excel transpose Methode unterstützt keine Zellen mit mehr als 255 Zeichen. Es ist $bForceFunc = True zu setzen um diese Limitierung zu umgehen.
$iReturn = 3 kann nur den dargestellten Text einer einzelnen Zelle zurückgeben. Das ist eine Excel Limitierung.

Verwandte Funktionen

_Excel_RangeWrite

Beispiel

Beispiel 1

#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Daten aus einer einzelnen Zelle auf dem aktiven Blatt der angegebenen Arbeitsmappe lesen
Local $sResult = _Excel_RangeRead($oWorkbook, Default, "A1")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example 1", "Fehler beim Lesen aus der Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example 1", "Daten erfolgreich gelesen." & @CRLF & "Value of cell A1: " & $sResult)

Beispiel 2

#include <Array.au3>
#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Lesen der Formeln eines Zellbereichs auf Blatt 2 der angegebenen Arbeitsmappe
Local $aResult = _Excel_RangeRead($oWorkbook, 2, "A1:C1", 2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example 2", "Fehler beim Lesen aus der Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example 2", "Daten erfolgreich gelesen." & @CRLF & "Bitte auf 'OK' klicken, um die Formeln der Zellen A1:C1 von Blatt 2 anzuzeigen.")
_ArrayDisplay($aResult, "Excel UDF: _Excel_RangeRead Example 2 - Zellen A1:C1 von Blatt 2")

Beispiel 3

#include <Array.au3>
#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Lesen der Formeln eines Zellbereichs (alle verwendeten Zellen in Spalte A)
Local $aResult = _Excel_RangeRead($oWorkbook, Default, $oWorkbook.ActiveSheet.Usedrange.Columns("A:A"), 2)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example 3", "Fehler beim Lesen aus der Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example 3", "Daten erfolgreich gelesen." & @CRLF & "Bitte auf 'OK' klicken, um alle Formeln in Spalte A anzuzeigen.")
_ArrayDisplay($aResult, "Excel UDF: _Excel_RangeRead Example 3 - Formeln in Spalte A")