setValue函数执行,但值不更新



我试图拥有一个用户界面,该界面可以在" open"one_answers"封闭"之间切换状态列。用户界面位于与表单数据的单独选项卡上,并且该选项卡成功执行,但是数据未更新。我正在使用"门户"表上的vlookup进行用户显示和"表单响应1"作为Google表单的原始条目。

我找到了另一个指示可以尝试SpreadsheetApp.flush()的帖子,但它要么不起作用,要么我没有正确使用它。

function openCloseCell()  {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s1 = ss.getSheetByName("Form Responses 1");
  var s2 = ss.getSheetByName("Portal");
  var data = s1.getDataRange().getValues();
  var last =s1.getLastRow();
  var valB= s2.getRange("C4").getValue();
  for (var i = 0; i<data.length; i++)
    var row = data[i]
    var cell = row[26]
{
if (cell == "Closed" && row[0] == valB)
{cell.setValue("Open");
}
else if (cell == "Open" && row[0] == valB)
{cell.setValue("Closed");
}
// SpreadsheetApp.flush();
}
}

尝试以下:

function openCloseCell()  {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s1 = ss.getSheetByName("Form Responses 1");
  var s2 = ss.getSheetByName("Portal");
  var data = s1.getDataRange().getValues();
  var last =s1.getLastRow();
  var valB= s2.getRange("C4").getValue();
  for (var i = 0; i<data.length; i++) {
    var row = data[i]
    var cell = row[26]
    if (cell == "Closed" && row[0] == valB)
    {s1.getRange(i+1,27).setValue("Open");
    }
    else if (cell == "Open" && row[0] == valB)
    {s1.getRange(i+1,27).setValue("Closed");
    }
    SpreadsheetApp.flush();
  }
}

最新更新