Funktionreferenz


_Excel_ConvertFormula

Beschreibung anzeigen in

Konvertiert Zellreferenzen in einer Formel von/nach den Referenzstilen A1 und R1C1, von/nach relativem und absolutem Referenztyp oder beiden

#include <Excel.au3>
_Excel_ConvertFormula ( $oExcel, $sFormula, $iFromStyle [, $iToStyle = Default [, $iToAbsolute = Default [, $vRelativeTo = Default]]] )

Parameter

$oExcel Excel Anwendungs-Objekt
$sFormula Text der die Formel zum Konvertieren beinhaltet
$iFromStyle Die Referenzstile der Formel. Kann ein Wert der XlReferenceStyle Aufzählung sein
$iToStyle [optional] Eine Wert der XlReferenceStyle Aufzählung, welche den Referenzstil angibt, der zurückgegeben werden soll. Wenn dieser Parameter fehlt, so wird der Referenzstil nicht geändert
$iToAbsolute [optional] Ein Wert der XlReferenceType Aufzählung der den konvertierten Referenztyp angibt. Wenn dieser Parameter fehlt, so wird der Referenztyp nicht geändert
$vRelativeTo [optional] Ein Bereichs-Objekt oder ein A1 Bereich, der nur eine Zelle umfasst. Relative Referenzen beziehen sich auf diese Zelle. Wenn dieser Parameter fehlt, so wird A1 verwendet

Rückgabewert

Erfolg: Die konvertierte Formel als Text.
Fehler: "" und setzt @error.
@error: 1 - $oExcel ist kein Objekt oder Anwendungs-Objekt
2 - $vRelativeTo ist kein Objekt oder kein gültiger A1 Bereich

Bemerkungen

R1C1 Referenzen sind sprachenabhängig.
In Englisch: "R10C5" (Row 10, Column 5), in Deutsch: "Z10S5" (Zeile 10, Spalte 5)

Beispiel

Beispiel 1

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

; Erstellen des Anwendungsobjektes und Öffnen eines neuen Workbooks
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_ConvertFormula Beispiel", "Fehler beim Erstellen des Excel Objektes." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_ConvertFormula Beispiel", "Fehler beim Erstellen eines neuen Workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Übersetzen eines A1-Bereichs in einen R1C1-Bereich und umgekehrt
Local $sFormula = "C4:G12"
; Relativ: A1 zu R1C1
Local $sR1C1 = _Excel_ConvertFormula($oExcel, $sFormula, $xlA1, $xlR1C1, $xlRelative)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_ConvertFormula Beispiel 1", "Fehler bei der Umwandlung der Formel in den R1C1-Stil." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; R1C1 zu A1
Local $sA1 = _Excel_ConvertFormula($oExcel, $sR1C1, $xlR1C1, $xlA1, $xlRelative)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_ConvertFormula Beispiel 1", "Fehler bei der Umwandlung der Formel in den Stil A1." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Ergebnis anzeigen
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_ConvertFormula Beispiel 1", "Konvertierungstyp: Relativ" & @CRLF & "  A1 zu einem R1C1-Stil: " & $sFormula & " zu " & $sR1C1 & @CRLF & "  R1C1 zu A1 Stil: " & $sR1C1 & " zu " & $sA1)

; Absolut: A1 zu R1C1
$sR1C1 = _Excel_ConvertFormula($oExcel, $sFormula, $xlA1, $xlR1C1, $xlAbsolute)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_ConvertFormula Beispiel 1", "Fehler bei der Umwandlung der Formel in den R1C1-Stil." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; R1C1 zu A1
$sA1 = _Excel_ConvertFormula($oExcel, $sR1C1, $xlR1C1, $xlA1, $xlAbsolute)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_ConvertFormula Beispiel 1", "Fehler bei der Umwandlung der Formel in den Stil A1." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
; Ergebnis anzeigen
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_ConvertFormula Beispiel 1", "Konvertierungstyp: Absolut" & @CRLF & "  A1 zu einem R1C1-Stil: " & $sFormula & " zu " & $sR1C1 & @CRLF & "  R1C1 zu A1 Stil: " & $sR1C1 & " zu " & $sA1)

Beispiel 2

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

; Erstellen des Anwendungsobjektes und Öffnen eines neuen Workbooks
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_ConvertFormula Beispiel", "Fehler beim Erstellen des Excel Objektes." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookNew($oExcel)
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_ConvertFormula Beispiel", "Fehler beim Erstellen eines neuen Workbook." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Übersetzen einer Formel vom Stil A1 in den Stil R1C1 und verwenden einer relativen Referenz
Local $sFormula = "=SUM(C4:G12)", $sReference = "B2"
Local $sConverted = _Excel_ConvertFormula($oExcel, $sFormula, $xlA1, $xlR1C1, $xlRelative, $oExcel.Range($sReference))
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_ConvertFormula Beispiel 2", "Fehler bei der Umwandlung der Formel." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_ConvertFormula Beispiel 2", "Übersetzen einer A1-Formel in eine R1C1 und verwenden von " & $sReference & " als relative Referenz:" & @CRLF & $sFormula & " zu " & $sConverted)