Funktionreferenz


_Excel_RangeWrite

Beschreibung anzeigen in

Schreibt Wert(e) oder Formel(n) in eine Zelle oder einen Zellbereich im angegebenen Arbeitsbuch oder Arbeitsblatt

#include <Excel.au3>
_Excel_RangeWrite ( $oWorkbook, $vWorksheet, $vValue [, $vRange = "A1" [, $bValue = True [, $bForceFunc = False]]] )

Parameter

$oWorkbook Excel Arbeitsbuch-Objekt
$vWorksheet Name, Index oder Arbeitsblatt-Objekt in das geschrieben werden soll. Wird das Schlüsselwort Default verwendet, so wird das aktive Arbeitsblatt verwendet
$vValue Kann ein Text sein, ein 1D oder 2D 0-basiertes Array, welches die Daten beinhaltet die in das Arbeitsblatt geschrieben werden sollen.
$vRange [optional] Entweder ein A1 Bereich oder ein Bereichs-Objekt (Standard = "A1")
$bValue [optional] Wenn True wird $vValue in die Value-Eigenschaft geschrieben. Wenn False wird $vValue in die Formel-Eigenschaft geschrieben (Standard = True)
$bForceFunc [optional] True erzwingt die Nutzung der _ArrayTranspose Funktion anstelle der Excel Transpose-Methode (Standard = False).
    Siehe den Remarks Bereich für mehr Details.

Rückgabewert

Erfolg: Das Objekt des Bereichs in den die Daten geschrieben wurden.
Fehler: 0 und setzt @error.
@error: 1 - $oWorkbook ist kein Objekt oder Arbeitsbuch
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 - Fehler beim Schreiben in eine einzelne Zelle. @extended ist auf den COM Fehlercode gesetzt
5 - Fehler beim Schreiben der Daten mit der _ArrayTranspose Funktion. @extended ist auf den COM Fehlercode gesetzt
6 - Fehler beim Schreiben der Daten mit der Excel Transpose-Methode. @extended ist auf den COM Fehlercode gesetzt

Bemerkungen

Wenn $vRange eine einzelne Zelle ist und $vValue ist ein Array, dann wird $vRange so erweitert, dass $vRange das komplette Array umfassen kann.
Dieser "erweiterte" Bereich wird dann von der Funktion zurückgegeben.
Wenn $vRange keine einzelne Zelle ist und $vValue ein Array ist und $vValue > $vRange dann wird das Array abgeschnitten.
Wenn $vRange keine einzelne Zelle ist und $vValue ein Array ist und $vValue < $vRange dann werden die "überzähligen" Zellen auf #NV gesetzt.

Die Excel Transpose-Methode hat ein nicht dokumentiertes Limit in der Anzahl der Zellen oder Zeilen, die es transponieren kann (hängt von der Excel Version ab).
Die Excel Transpose-Methode unterstützt keine Zellen mit mehr als 255 Zeichen. Es ist $bForceFunc = True zu setzen um diese Limitierungen zu umgehen.

Verwandte Funktionen

_Excel_RangeRead

Beispiel

Beispiel 1

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

; Erstellt das Anwendungsobjekt und eine neue Arbeitsmappe
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 1", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 1", "Fehler beim Erstellen der neuen Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Schreibt eine Zeichenkette mit einem Zeilenumbruch in das aktive Blatt in der aktiven Arbeitsmappe
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "Test" & @CRLF & "String")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 1", "Fehler beim Schreiben in das Arbeitsblatt." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 1", "Zeichenkette wurde erfolgreich geschrieben.")

Beispiel 2

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

; Erstellt das Anwendungsobjekt und eine neue Arbeitsmappe
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 2", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 2", "Fehler beim Erstellen der neuen Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Schreibt einen 1D-Array in das aktive Blatt der aktiven Arbeitsmappe
Local $aArray1D[3] = ["AA", "BB", "CC"]
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aArray1D, "A3")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 2", "Fehler beim Schreiben in das Arbeitsblatt." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 2", "1D-Array erfolgreich in das Arbeitsblatt geschrieben.")

Beispiel 3

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

; Erstellt das Anwendungsobjekt und eine neue Arbeitsmappe
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 3", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 3", "Fehler beim Erstellen der neuen Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Schreibt einen 2D-Array in den Bereich B1:D2 des aktiven Blattes der aktiven Arbeitsmappe.
; Es werden nur 2 Zeilen und 3 Spalten des Array geschrieben, da der angegebene Bereich kleiner ist als der Array.
Local $aArray2D[3][5] = [[11, 12, 13, 14, 15], [21, 22, 23, 24, 25], [31, 32, 33, 34, 35]]
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aArray2D, "B1:D2")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 3", "Fehler beim Schreiben in das Arbeitsblatt." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 3", "2D array erfolgreich geschrieben (aber auf 2 Zeilen und 3 Spalten abgeschnitten).")

Beispiel 4

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

; Erstellt das Anwendungsobjekt und eine neue Arbeitsmappe
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 4", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 4", "Fehler beim Erstellen der neuen Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Füllt einen Bereich im aktiven Arbeitsblatt in der aktiven Arbeitsmappe mit einer Formel
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "=B1+3", "B5:F6", False)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 4", "Fehler beim Schreiben in das Arbeitsblatt." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Beispiel 4", "Bereich erfolgreich mit einer Formel gefüllt.")