繁体   English   中英

添加新行时自动填充复选框 - AppsScript / Google Sheets

[英]Auto Fill CheckBox as new row added - AppsScript / Google Sheets

我有以下代码。 它目前将复选框添加到 E3。 我想修改,以便在添加新行时向 E 列添加一个复选框。

function AddCheckBox(e) {
    var spreadsheet = SpreadsheetApp.getActive();
    var cell = SpreadsheetApp.getActive().getRange('E3');
    var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
    var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build();
    cell.setDataValidation(rule);
}

我试过这个,但没有用:

spreadsheet.getActiveRange().autoFillToNeighbor(SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);

感谢任何帮助。

  • 您想在活动范围的“E”列中放置一个复选框。
    • 在您的问题中,您测试了spreadsheet.getActiveRange().autoFillToNeighbor(SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES); . 由此,我像上面那样思考。
  • a new row is added it意味着将值放入单元格中。

如果我的理解是正确的,这个答案怎么样? 请将此视为几种可能的答案之一。

模式一:

在此模式中,使用活动范围。

示例脚本:

运行此脚本时,会在活动范围行的“E”列中放置一个复选框。

function AddCheckBox(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Donations Received")  // Modified
  var activeRange = sheet.getActiveRange();
  var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
  var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build();
  var range = sheet.getRange(activeRange.getRow(), 5);
  range.clearContent();
  range.setDataValidation(rule);
}

模式2:

在此模式中,使用最后一行。

示例脚本:

运行此脚本时,将在活动工作表最后一行的“E”列中放置一个复选框。

function AddCheckBox(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Donations Received")  // Modified
  var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
  var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build();
  var range = sheet.getRange(sheet.getLastRow(), 5);
  range.clearContent();
  range.setDataValidation(rule);
}

模式 3:

在这个模式中,它假设AddCheckBox(e)被安装为 OnEdit 事件触发器的可安装触发器。

示例脚本:

运行此脚本时,将在编辑行的“E”列中放置一个复选框。

function AddCheckBox(e) {
  var range = e.range;
  var sheet = range.getSheet();
  if (sheet.getSheetName() == "Donations Received") {  // Added
    var criteria = SpreadsheetApp.DataValidationCriteria.CHECKBOX;
    var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build();
    var range = sheet.getRange(range.getRow(), 5);
    range.clearContent();
    range.setDataValidation(rule);
  }
}

笔记:

  • 关于range.clearContent(); ,如果你不需要,请删除它。

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM