Google 张 API 中的 IF ELSE 循环问题

IF ELSE Loop problem in Google Sheets API

下面的代码从一个小表格中提取数据,在 sheet "dbs" 中搜索唯一 ID "uid" 并将新信息复制到 [=24] 中的正确行=].如果我试图通过将新行粘贴到 sheet 的底部来完成任务,如果该人尚不存在 "dbs" sheet.

我试过 "if else" 和 "if",都在寻找和不寻找“!== uid”和“”。

(复制到行 // 仅用于调试)

/** @OnlyCurrentDoc */
function submitData() {
  var ss = SpreadsheetApp.getActive();
  var static = ss.getSheetByName("Static Data"); //static data sheet
  var dbs = ss.getSheetByName("DBS Information"); //dbs sheet
  var menu = ss.getSheetByName("Menu");
  var uid = menu.getRange('E8').getValue();
  var values = dbs.getDataRange().getLastRow();


  // Logger.log(values)

  //find row number

  for (var i = 0; i < values.length; i++) {
    var row = "";
    for (var j = 0; j < values[i].length; j++) {

      if (values[i][j] == uid) {
        row = values[i][j];
        var x = 1;
        var z = x + i;
        Logger.log(z);
        // static.getRange("F2:M2").copyTo(dbs.getRange((z),1), {contentsOnly:true});
      } else {
        var R = dbs.getLastRow().getvalue;
        Logger.log(R);
        // static.getRange("F2:M2").copyTo(dbs.getRange((R),1), {contentsOnly:true});
      }
    }
  };
};

如果找到 uid,您可以尝试设置一个 found 变量,然后在循环后检查它以查看是否添加新行。

/** @OnlyCurrentDoc */
function submitData() {
    var ss = SpreadsheetApp.getActive();
    var static = ss.getSheetByName("Static Data"); //static data sheet
    var dbs = ss.getSheetByName("DBS Information"); //dbs sheet
    var menu = ss.getSheetByName("Menu");
    var uid = menu.getRange('E8').getValue();
    var values = dbs.getDataRange().getLastRow();


    // Logger.log(values)

    //find row number

    var found = false;
    for (var i = 0; i < values.length; i++) {
        var row = "";
        for (var j = 0; j < values[i].length; j++) {

            if (values[i][j] == uid) {
                row = values[i][j];
                var x = 1;
                var z = x + i;
                Logger.log(z);
                found = true;
                break;
                // static.getRange("F2:M2").copyTo(dbs.getRange((z),1), {contentsOnly:true});
            }
        }
    };

    if (!found) {
        var R = dbs.getLastRow().getvalue;
        Logger.log(R);
        // static.getRange("F2:M2").copyTo(dbs.getRange((R),1), {contentsOnly:true});
    }
};