如何在Google电子表格

时间:2018-05-18 07:02:15

标签: google-apps-script google-sheets spreadsheet

Hiho我尝试在连续写入时如何打开新笔记。

在我的googlespreadsheet中,我写了10列(U列到AT)。当我在空行中添加新数据时,我需要在完成数据放置时,然后会打开一个盒子注释来写入它。

我找到了下一个在编辑时很有用的代码,但我需要一次插入不在编辑中的数据。

    function onEdit() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheet = doc.getActiveSheet();
var cell = sheet.getActiveCell();
cell.setComment(" ");
}

1 个答案:

答案 0 :(得分:0)

您需要一个IF语句来检查最后一行是否为“完成”列U到UT的值是否为

通过SO用户moogsdad

找到U列中的最后一行
var Uvals = ss.getRange("U1:U").getValues();
var Ulast = Uvals.filter(String).length;

尝试以下代码。我没有对它进行过测试,所以它可能在某个地方缺少了分号或大括号。

function onEdit() {

  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = doc.getActiveSheet();
  var cell = sheet.getActiveCell();
  // get last row on column U
  var Uvals = sheet.getRange("U1:U").getValues();
  var Ulast = Uvals.filter(String).length;

  // check is the row being edited matches the last row
  if (cell.getRow() == Ulast) {

    var updateRange = sheet.getRange("U"+Ulast+":AT"+Ulast);
    var UpdateValues = range.getValues();
    var isComplete = true;

    // should loop through all cells in you update range and set isComplete to false is any are blank.
    for (var row in UpdateValues ) {
     for (var col in UpdateValues[row]) {
       if (UpdateValues[row][col] == '') {
          isComplete = false;
       }
     }

     // if all cells complete then set comment
     if (isComplete == true) {
       cell.setComment(" ");
     }

  } // end if edited row matches last row in U

} // end of function