OnEdit事件处理和空白单元格

时间:2016-06-22 15:04:05

标签: google-apps-script google-sheets

我正在尝试测试列A中的单元格是否为空时单击C列中的单元格。如果它为空,则使用变量newValue填充A列中的单元格。

function onEdit(e){
  var newValue=10
  var range = e.range;
  var offsetRange = offset(0,-2).range;
  if (isblank().offsetRange) {offsetRange.setValue(newValue);}
}

基本目标是将上述测试代码的功能合并到主键的创建中,其中主键值存储在A列中。我正在使用Spreadsheet中的简单表视图数据库。如果用户启动数据输入到C列中的空白单元格(即可能创建新记录/行),并且相应行的列A为空(缺少主键),则代码将生成并填充A A列中的数字作为主键(我可以在以后生成唯一数字)。

我该如何做到这一点?

1 个答案:

答案 0 :(得分:0)

你的脚本的逻辑是有道理的,但你犯了一些错误:

  1. 电子表格功能,例如isblank,在Apps脚本中不可用。
  2. 方法名称在应用该方法的对象后出现。那是:range.offset(0, -2),而不是offset(0, -2).range
  3. 范围与该范围内的不同。要获取值,请根据需要使用getValuegetValues
  4. 从Apps Script的角度来看,空白单元格似乎包含空字符串。所以空白的测试是offsetRange.getValue() === '',如下所示。
  5. 正确的脚本:

    function onEdit(e) {
      var newValue = 10;
      var range = e.range;
      var offsetRange = range.offset(0, -2);
      if (offsetRange.getValue() === '') {
        offsetRange.setValue(newValue);
      }
    }