Funktionreferenz


_Excel_RangeValidate

Beschreibung anzeigen in

Prüft Datengültigkeit im angegebenen Bereich

#include <Excel.au3>
_Excel_RangeValidate ( $oWorkbook, $vWorksheet, $vRange, $iType, $sFormula1 [, $iOperator = Default [, $sFormula2 = Default [, $bIgnoreBlank = True [, $iAlertStyle = $xlValidAlertStop [, $sErrorMessage = Default [, $sInputMessage = Default]]]]]] )

Parameter

$oWorkbook Excel Arbeitsbuch-Objekt
$vWorksheet Name, Index oder Arbeitsblatt-Objekt. Wird das Schlüsselwort Default gesetzt, so wird das aktive Arbeitsblatt verwendet
$vRange Ein Bereichs-Objekt, ein A1 Bereich oder das Schlüsselwort Default um alle Zellen im angegebenen Arbeitsblatt zu prüfen
$iType Der Prüftyp. Muss eine Konstante der XlDVType Aufzählung sein
$sFormula1 Der erste Teil der Datenprüfungs-Gleichung
$iOperator [optional] Der Datenprüfungs-Operator. Kann eine Konstante der XlFormatConditionOperator Aufzählung sein (Standard = Schlüsselwort Default)
$sFormula2 [optional] Der zweite Teil der Datenprüfungs-Gleichung wenn $iOperator $xlBetween oder $xlNotBetween ist. Ansonsten wird der Parameter ignoriert (Standard = Schlüsselwort Default)
$bIgnoreBlank [optional] Wenn auf True gesetzt, wird der Zelleninhalt als gültig erkannt, wenn die Zelle leer ist (Standard = True)
$iAlertStyle [optional] Definiert das Icon, das in Meldungsboxen während der Prüfung angezeigt wird. Kann eine Konstante der XlDVAlertStyle Aufzählung sein (Standard = $xlValidAlertStop)
$sErrorMessage [optional] Nachricht die in der MsgBox angezeigt werden soll, wenn ungültige Daten eingegeben wurden (Standard = Schlüsselwort Default)
$sInputMessage [optional] Nachricht, die im ToolTip angezeigt werden soll, wenn angefangen wird, Daten einzugeben (Standard = Schlüsselwort Default)

Rückgabewert

Erfolg: Das Bereichs-Objekt.
Fehler: 0 und setzt @error.
@error: 1 - $oWorkbook ist kein Objekt oder kein 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 - Fehler wurde von der Add-Methode zurückgegeben. @extended ist auf den COM Fehlercode gesetzt

Bemerkungen

Der Parameter $bDisplayAlerts der Funktion _Excel_Open muss auf True gesetzt sein um die $sErrorMessage anzuzeigen.

Wenn gegen eine Liste von Werten geprüft werden soll, die in einem anderen Zellenbereich gespeichert ist ($iType = $xlValidateList), dann muss $sFormula1 mit "=" beginnen (z.B. "=C:C").

Vor dem Hinzufügen einer neuen Prüfungsregel zu einem Bereich löscht die Funktion existierende Prüfungsregeln in dem Bereich.

Beispiel

Beispiel 1

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

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open(True, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example", "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_RangeValidate Example", "Fehler beim Erstellen einer neuen Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Nur Werte aus einer Liste sind gültig
_Excel_RangeValidate($oWorkbook, Default, "A1:A10", $xlValidateList, "Ja;Nein;Weiß nicht")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 1", "Fehler beim Setzen der Bereichsüberprüfung." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 1", "Validierung anhand einer Liste von Werten, die erfolgreich für den Bereich 'A1:A10' festgelegt wurden.")

Beispiel 2

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

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open(True, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example", "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_RangeValidate Example", "Fehler beim Erstellen einer neuen Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Nur Werte aus einer in einem Zellbereich (Spalte 'D') definierten Liste sind gültig
; Werte in einen Bereich schreiben
Local $aValidation[] = ["10", "20", "30", "40", "50"]
_Excel_RangeWrite($oWorkbook, Default, $aValidation, "D1")
; Nur Werte aus dem Bereich sind gültig
_Excel_RangeValidate($oWorkbook, Default, "C:C", $xlValidateList, "=D:D")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 2", "Fehler beim Setzen der Bereichsüberprüfung." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 2", "Validierung gegen eine Liste von Werten im Zellbereich '=D:D' erfolgreich für Spalte 'C' gesetzt.")

Beispiel 3

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

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open(True, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example", "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_RangeValidate Example", "Fehler beim Erstellen einer neuen Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Nur numerische Werte sind gültig
_Excel_RangeValidate($oWorkbook, Default, "B:B", $xlValidateDecimal, 0, $xlGreater, Default, Default, $xlValidAlertStop, "Sie haben einen nicht numerischen Wert eingegeben!", "Nur numerische Werte sind gültig.")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 3", "Fehler beim Setzen der Bereichsüberprüfung." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 3", "In Spalte 'B' sind nur numerische Werte gültig.")

Beispiel 4

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

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open(True, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example", "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_RangeValidate Example", "Fehler beim Erstellen einer neuen Arbeitsmappe." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Benutzerdefinierte Validierung. Die Summe aller Zellen in Spalte 'E' muss < 100 sein.
_Excel_RangeValidate($oWorkbook, Default, "E:E", $xlValidateCustom, "=SUM(E:E)<=100", Default, Default, Default, Default, "Summe aller Zellen in Spalte 'E' < 100.")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 4", "Fehler beim Setzen der Bereichsüberprüfung." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeValidate Example 4", "Die Summe aller Zellen in Spalte 'E' muss < 100 sein.")