我试图拥有一个用户界面,该界面可以在" 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();
}
}