Funktionreferenz


_Excel_RangeCopyPaste

Beschreibung anzeigen in

Kopiert eine oder mehrere Zellen, Zeilen oder Spalten oder schneidet sie aus und fügt sie in einen Bereich ein oder von/in die Zwischenablage (Clipboard)

#include <Excel.au3>
_Excel_RangeCopyPaste ( $oWorksheet, $vSourceRange [, $vTargetRange = Default [, $bCut = False [, $iPaste = Default [, $iOperation = Default [, $bSkipBlanks = False [, $bTranspose = False]]]]]] )

Parameter

$oWorksheet Objekt der Arbeitsseite aus der kopiert werden soll
$vSourceRange Ursprungsbereich zum kopieren/ausschneiden. Kann ein Bereichs-Objekt oder ein A1 Bereich sein.
    Wenn das Schlüsselwort Default verwendet wird, wird der Bereich aus der Zwischenablage kopiert.
$vTargetRange [optional] Zielbereich in den kopiert/ausgeschnitten werden soll. Kann ein Bereichs-Objekt oder ein A1 Bereich sein.
    Wenn das Schlüsselwort Default verwendet wird, wird der Bereicht in die Zwischenablage kopiert (Standard = Schlüsselwort Default).
$bCut [optional] Wenn auf True gesetzt, so wird der Bereich nicht kopiert sondern ausgeschnitten (Standard = False)
    Dieser Parameter wird ignoriert, wenn $vSourceRange auf das Schlüsselwort Default gesetzt ist.
$iPaste [optional] Definiert, was aus der Zwischenablage eingefügt werden soll (Formeln, Formate ...). Muss ein Wert aus der XlPasteType Aufzählung sein.
    (Standard = Schlüsselwort Default)
$iOperation [optional] Definiert die durchzuführende Einfüge-Operation (hinzufügen, teilen, multiplizieren ... ). Muss ein Wert der XlPasteType Aufzählung sein.
    (Standard = Schlüsselwort Default)
$bSkipBlanks [optional] Wenn auf True gesetzt, so werden leere Zellen von der Zwischenablage nicht in den Zielbereich eingefügt (Standard = False)
$bTranspose [optional] Wenn auf True gesetzt, werden die Zeilen und Spalten beim Einfügen des Bereichs vertauscht (Standard = False)

Rückgabewert

Erfolg: Das Objekt des Zielbereichs, wenn $vTargetRange <> Default, andernfalls 1.
Fehler: 0 und setzt @error.
@error: 1 - $oWorksheet ist kein Objekt oder kein Arbeitsblatt
2 - $vSourceRange ist falsch. @extended ist auf den COM Fehlercode gesetzt
3 - $vTargetRange ist falsch. @extended ist auf den COM Fehlercode gesetzt
4 - Fehler beim Einfügen der Zellen. @extended ist auf den COM Fehlercode gesetzt
5 - Fehler beim Ausschneiden der Zellen. @extended ist auf den COM Fehlercode gesetzt
6 - Fehler beim Kopieren der Zellen. @extended ist auf den COM Fehlercode gesetzt
7 - $vSourceRange und $vTargetRange können nicht beide gleichzeitig auf das Schlüsselwort Default gesetzt werden

Bemerkungen

$vSourceRange und $vTargetRange können nicht beide gleichzeitig auf das Schlüsselwort Default gesetzt werden
Wenn $vSourceRange = Default dann:
* wird der Bereich aus der Zwischenablage mit der PasteSpecial Methode kopiert
* $bCut wird ignoriert
* $iPaste, $iOperation, $bSkipBlanks und $bTranspose werdn berücksichtigt
Wenn $vSourceRange und $vTargetRange angegeben sind, wird $iPaste, $iOperation, $bSkipBlanks und $bTranspose ignoriert

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_RangeCopy Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Open Workbook 1
Local $oWorkbook1 = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls", True)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Kopieren eines Bereichs mit 3 Zeilen und 2 Spalten auf das aktive Arbeitsblatt.
; Übergeben des Quellbereichs als Objekt.
Local $oRange = $oWorkbook1.ActiveSheet.Range("I2:J4")
_Excel_RangeCopyPaste($oWorkbook1.ActiveSheet, $oRange, "G7")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 1", "Fehler beim Kopieren von Zellen." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 1", "Bereich 'I2:J4' erfolgreich nach 'G7' kopiert.")

Beispiel 2

#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_RangeCopy Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Arbeitsmappe 2 öffnen
Local $oWorkbook2 = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel3.xls", True)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel3.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf
; Arbeitsmappe 1 öffnen
Local $oWorkbook1 = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls", True)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Kopieren einer einzelnen Zelle aus einer anderen Arbeitsmappe. Übergeben des Quellbereichs als Objekt.
Local $oRange = $oWorkbook2.Worksheets(1).Range("A1")
_Excel_RangeCopyPaste($oWorkbook1.Worksheets(1), $oRange, "G15")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 2", "Fehler beim Kopieren von Zellen." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 2", "Bereich 'A1' aus der Arbeitsmappe _Excel3.xls erfolgreich nach 'G15' kopiert.")

Beispiel 3

#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_RangeCopy Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Arbeitsmappe 1 öffnen
Local $oWorkbook1 = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Kopieren von 2 Zeilen (1 und 2) aus Arbeitsblatt 2 in die Zwischenablage
_Excel_RangeCopyPaste($oWorkbook1.Worksheets(2), "1:2")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 3", "Fehler beim Kopieren von Zeilen." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 3", "Zeilen 1+2 erfolgreich von Arbeitsblatt 2 in die Zwischenablage kopiert.")

; Einfügen des in Beispiel 3 geschriebenen Bereichs aus der Zwischenablage in das aktive Arbeitsblatt.
; Es werden nur Werte ohne Formatierung eingefügt.
_Excel_RangeCopyPaste($oWorkbook1.Activesheet, Default, "1:1", Default, $xlPasteValues)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 4", "Fehler beim Kopieren von Zeilen." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 4", "2 Zeilen erfolgreich aus der Zwischenablage in Zeile 1 eingefügt.")

Beispiel 4

#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_RangeCopy Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Arbeitsmappe 1 öffnen
Local $oWorkbook1 = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Übertragen des Formats einer Zelle auf andere Zellen
_Excel_RangeCopyPaste($oWorkbook1.Activesheet, "A1") ; Kopieren der Zelle in die Zwischenablage
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example5", "Fehler beim Kopieren von Zelle A1." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
_Excel_RangeCopyPaste($oWorkbook1.Activesheet, Default, "B1:E16", Default, $xlPasteFormats) ; das Format in den Zielbereich einfügen
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example5", "Fehler beim Einfügen von Zellen." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeCopy Example 5", "Format der Zelle 'A1' erfolgreich in 'B1:E16' eingefügt.")