首页 > 解决方案 > 如何修复脚本错误 - 未定义的值

问题描述

我编写了一个运行良好的简单脚本,但问题是当您清除(退格)“19Tydzień08”表中的任何单元格时,它的值“未定义”。如何解决这个问题?有一张表:https ://docs.google.com/spreadsheets/d/1_ybHZIgvQvFmAbXb2WjyuUT4QrMAakV9Z4Yt_cJWeVw/edit?usp=sharing

function onEdit(e) {
  var ss = SpreadsheetApp.getActive();
  var sh = ss.getSheetByName("19Tydzień 08 (Zjazdy Kierowców)")

  var rng = e.range
  var ov = e.oldValue
  var v = e.value

  if (ss.getActiveSheet().getName() == "19Tydzień08") {  
    rng.setValue(ov)

    var n = sh.getRange("C4:C").getValues().filter(String).length   
    var data = sh.getRange(4, 2, n, 7).getValues()

    // Utilities.sleep(2000)
    // SpreadsheetApp.flush();
    rng.setValue(v)
    var n = sh.getRange("C4:C").getValues().filter(String).length
    var data1 = sh.getRange(4, 2, n, 7).getValues()

    Logger.log(data)

    sh.getRange(4, 5, sh.getLastRow(), 4).clearContent();
    for (var i = 0; i < data1.length; i++) {
      for (var j = 0; j < data.length; j++) {
        if (data1[i][0] == data[j][0] && data1[i][1] == data[j][1]) {       
          sh.getRange(i+4, 5).setValue(data[j][3])
          sh.getRange(i+4, 6).setValue(data[j][4])
          sh.getRange(i+4, 7).setValue(data[j][5])
          sh.getRange(i+4, 8).setValue(data[j][6])
          break;
        }
      }
    }
  }
}

标签: google-apps-scriptgoogle-sheetstriggers

解决方案


推荐阅读