Google apps script 如何使用InsertCheckBox和TRUE/FALSE创建OneEdit函数?

Google apps script 如何使用InsertCheckBox和TRUE/FALSE创建OneEdit函数?,google-apps-script,checkbox,google-sheets,Google Apps Script,Checkbox,Google Sheets,在Z6中有一个公式:如果E6中的复选框=TRUE,即选中,则“X”或“Y”。这个很好用。不幸的是,一些用户错误地删除了复选框,因此我需要实现一个逻辑来将其添加回来。我正在尝试实现,但作为onEdit。我真的不知道我在做什么,所以建议非常受欢迎: function onEdit(e) { var rangeList = SpreadsheetApp.getActive().getSheetByName('Sheet1').getRangeList(['E6:E7']); for (var

在Z6中有一个公式:如果E6中的复选框=TRUE,即选中,则“X”或“Y”。这个很好用。不幸的是,一些用户错误地删除了复选框,因此我需要实现一个逻辑来将其添加回来。我正在尝试实现,但作为onEdit。我真的不知道我在做什么,所以建议非常受欢迎:

function onEdit(e) {
  var rangeList = SpreadsheetApp.getActive().getSheetByName('Sheet1').getRangeList(['E6:E7']);
  for (var i=0; i<rangeList.getRanges().length; i++ ) {
    var range = rangeList.getRanges()[i];
    for (var j=0; j<range.getValues().length; j++ ) {
      var value = range.getValue()[j];
      Logger.log("i: " + i);
      Logger.log("j: " + j);
      Logger.log("value: " + value);
      var values = range.getValues();
      for ( var val in values ) {
        Logger.log("values[val]: " + values[val]);
        if( values[val] != 'TRUE' && values[val] != 'FALSE' ) {
          range.insertCheckboxes('TRUE', 'FALSE');
          Logger.log("arrived at insert checkbox");
        }
      }
    }
  }
}
同样,以下公式适用于单元H6和H7:

=WENNH6=FALSE;是假的;H6显示为假。 =WENNH7=FALSE;是假的;H7显示错误。 以下是我执行将H6:H7复制到单元格E6:E7的操作时的日志:

最后,公式=WENNE7=FALSE;是假的;E7显示错误


我需要的是,在onEdit函数重新创建一个已删除的复选框之后,公式=WENNE7=FALSE;是假的;E7 shows为FALSE。

我认为问题在于,当您创建复选框时,您提供了字符串TRUE和FALSE作为选中和未选中状态的自定义值,而字符串FALSE与在FALSE中返回的逻辑值不同

如果未向提供自定义值,则默认的选中/未选中值为布尔值true和false,在最后一种情况下,该值与内置函数返回的值匹配。因此,当复选框未选中时,输出为false

因此,请尝试删除自定义值。也就是说,尝试替换此:

范围。插入复选框“真”、“假”; 为此:

range.insertcheckbox;
我希望这能有所帮助。

确实有帮助。非常感谢你。添加了所有其他范围后,我现在遇到了一个性能问题,但我将就此提出另一个问题。@mortpiedra很高兴这有帮助。另外,因为你原来的问题已经解决了,请考虑一下。这是很有用的,因为这个社区依靠它向其他用户共享知识。
[20-01-07 15:11:33:557 CET] i: 0
[20-01-07 15:11:33:558 CET] j: 0
[20-01-07 15:11:33:558 CET] value: F
[20-01-07 15:11:33:559 CET] values[val]: FALSE
[20-01-07 15:11:33:559 CET] values[val]: TRUE
[20-01-07 15:11:33:560 CET] i: 0
[20-01-07 15:11:33:560 CET] j: 1
[20-01-07 15:11:33:560 CET] value: A
[20-01-07 15:11:33:561 CET] values[val]: FALSE
[20-01-07 15:11:33:561 CET] values[val]: TRUE
[20-01-07 06:01:50:720 PST] i: 0
[20-01-07 06:01:50:720 PST] j: 0
[20-01-07 06:01:50:721 PST] value: undefined
[20-01-07 06:01:50:722 PST] values[val]: false
[20-01-07 06:01:50:897 PST] arrived at insert checkbox
[20-01-07 06:01:50:898 PST] values[val]: true
[20-01-07 06:01:51:041 PST] arrived at insert checkbox
[20-01-07 06:01:51:168 PST] i: 0
[20-01-07 06:01:51:168 PST] j: 1
[20-01-07 06:01:51:169 PST] value: A
[20-01-07 06:01:51:170 PST] values[val]: FALSE
[20-01-07 06:01:51:170 PST] values[val]: TRUE