Google表格中的自动增量数据验证

时间:2018-12-04 02:08:12

标签: google-apps-script google-sheets

我对Google表格的经验基本上为零。我遵循了一个信息启发式文档,其中标题为“如何在Google表格[高级]中创建多行动态相关下拉列表”的部分创建了三个不同的属性列表,可根据上一列中选择的属性从中进行选择同一行的

最大的问题是,看来Google不允许向下拖动列以增加数据验证。我的数据验证从当前使用“ Traits!B1:J1”的范围中引用了单独的工作表列表。

是否存在可以通过简单拖动来使用的脚本,以使范围将针对每一行递增,从而导致: B1:J1, B2:J2, B3:J3, B4:J4, 等等?

1 个答案:

答案 0 :(得分:1)

不确定为什么有人降级了这个问题。如果您要这样做,也许可以提供一些帮助。

在此,我感谢James / mreighties在论坛上做出的另一番回应,向我指出了“学习Google Spreadsheets”中的一些视频,这些视频完全满足了我的需求。提供解决方案的基本脚本显示在这里:

    function onEdit(){

  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var datass = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("data")

  var activeCell = ss.getActiveCell();

  if(activeCell.getColumn() == 1 && activeCell.getRow() > 1){

    activeCell.offset(0, 1).clearContent().clearDataValidations();

      var makes = datass.getRange(1, 1, 1, datass.getLastColumn()).getValues();

      var makeIndex = makes[0].indexOf(activeCell.getValue()) + 1;

        if(makeIndex != 0) {

      var validationRange = datass.getRange(3, makeIndex, datass.getLastRow());
      var validationRule = SpreadsheetApp.newDataValidation().requireValueInRange(validationRange).build();
      activeCell.offset(0, 1).setDataValidation(validationRule);

  }

}
}

通过一点按摩,我就可以完美地工作了。