Freigeben über


Datenüberprüfung: Dropdownlisten, Eingabeaufforderungen und Warn-Popups

Die Datenüberprüfung hilft dem Benutzer, die Konsistenz in einem Arbeitsblatt sicherzustellen. Verwenden Sie diese Features, um zu begrenzen, was in eine Zelle eingegeben werden kann, und Um Benutzern Warnungen oder Fehler bereitzustellen, wenn diese Bedingungen nicht erfüllt sind. Weitere Informationen zur Datenüberprüfung in Excel finden Sie unter Anwenden der Datenüberprüfung auf Zellen.

Erstellen einer Dropdownliste mithilfe der Datenüberprüfung

Im folgenden Beispiel wird eine Dropdownauswahlliste für eine Zelle erstellt. Es verwendet die vorhandenen Werte des ausgewählten Bereichs als Auswahlmöglichkeiten für die Liste.

Ein Arbeitsblatt mit einem Bereich von drei Zellen, die die Farbauswahl

function main(workbook: ExcelScript.Workbook) {
  // Get the values for data validation.
  const selectedRange = workbook.getSelectedRange();
  const rangeValues = selectedRange.getValues();

  // Convert the values into a comma-delimited string.
  let dataValidationListString = "";
  rangeValues.forEach((rangeValueRow) => {
    rangeValueRow.forEach((value) => {
      dataValidationListString += value + ",";
    });
  });

  // Clear the old range.
  selectedRange.clear(ExcelScript.ClearApplyTo.contents);

  // Apply the data validation to the first cell in the selected range.
  const targetCell = selectedRange.getCell(0,0);
  const dataValidation = targetCell.getDataValidation();

  // Set the content of the dropdown list.
  dataValidation.setRule({
      list: {
        inCellDropDown: true,
        source: dataValidationListString
      }
    });
}

Hinzufügen einer Eingabeaufforderung zu einem Bereich

In diesem Beispiel wird eine Eingabeaufforderungsnotiz erstellt, die angezeigt wird, wenn ein Benutzer die angegebenen Zellen eingibt. Dies wird verwendet, um Benutzer ohne strenge Durchsetzung an Eingabeanforderungen zu erinnern.

Eine Eingabeaufforderung mit dem Titel

/**
 * This script creates a text prompt that's shown in C2:C8 when a user enters the cell.
 */
function main(workbook: ExcelScript.Workbook) {
    // Get the data validation object for C2:C8 in the current worksheet.
    const selectedSheet = workbook.getActiveWorksheet();
    const dataValidation = selectedSheet.getRange("C2:C8").getDataValidation();

    // Clear any previous validation to avoid conflicts.
    dataValidation.clear();

    // Create a prompt to remind users to only enter first names in this column.
    const prompt: ExcelScript.DataValidationPrompt = {
      showPrompt: true,
      title: "First names only",
      message: "Only enter the first name of the employee, not the full name."
    }
    dataValidation.setPrompt(prompt);
}

Benachrichtigen des Benutzers, wenn ungültige Daten eingegeben werden

Das folgende Beispielskript verhindert, dass der Benutzer nichts anderes als positive Zahlen in einen Bereich eingibt. Wenn sie versuchen, etwas anderes einzufügen, wird eine Fehlermeldung angezeigt, die auf das Problem hinweist.

Eine Fehlermeldung mit dem Titel

/**
 * This script creates a data validation rule for the range B2:B5.
 * All values in that range must be a positive number.
 * Attempts to enter other values are blocked and an error message appears.
 */
function main(workbook: ExcelScript.Workbook) {
    // Get the range B2:B5 in the active worksheet.
    const currentSheet = workbook.getActiveWorksheet();
    const positiveNumberOnlyCells = currentSheet.getRange("B2:B5");

    // Create a data validation rule to only allow positive numbers.
    const positiveNumberValidation: ExcelScript.BasicDataValidation = {
        formula1: "0",
        operator: ExcelScript.DataValidationOperator.greaterThan
    };
    const positiveNumberOnlyRule: ExcelScript.DataValidationRule = {
      wholeNumber: positiveNumberValidation
    };

    // Set the rule on the range.
    const rangeDataValidation = positiveNumberOnlyCells.getDataValidation();
    rangeDataValidation.setRule(positiveNumberOnlyRule);

    // Create an alert to appear when data other than positive numbers are entered.
    const positiveNumberOnlyAlert: ExcelScript.DataValidationErrorAlert = {
        message: "Positive numbers only.",
        showAlert: true,
        style: ExcelScript.DataValidationAlertStyle.stop,
        title: "Invalid data"
    };
    rangeDataValidation.setErrorAlert(positiveNumberOnlyAlert);
}