在我的googlespreadsheet中,我写了10列(U列到AT)。当我在空行中添加新数据时,我需要在完成数据放置时,然后会打开一个盒子注释来写入它。
我找到了下一个在编辑时很有用的代码,但我需要一次插入不在编辑中的数据。
function onEdit() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheet = doc.getActiveSheet();
var cell = sheet.getActiveCell();
cell.setComment(" ");
}
答案 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