我正在研究一个非常简单的脚本(onEdit),在Google表格中检查单元格中的值,并将编辑的行复制/粘贴到同一电子表格中的另一个工作表。这是我的代码到目前为止:意外的删除行为google spreadsheetApp
function onEdit(e) {
var ss = e.source //get sheet from edit event
var s = ss.getActiveSheet();
if (s.getName() == 'currKarma')
{
var test = checkCellValue(e); //check cell value
if (test == true) {
var rowRng = e.range.getRow();
var copyVals = s.getRange("A" + rowRng + ":" + "G" + rowRng) //get the range for the row that contained the edited cell
var newSheet = ss.getSheets()[1];
newSheet.insertRowBefore(1);
var pasteRange = newSheet.getRange("A1:F1");
copyVals.copyTo(pasteRange); //copy range to second sheet
s.deleteRow(rowRng) //delete row that was copied
};
}
function checkCellValue(e) {
var chkData = e.value;
return chkData == "no";
}
}
一切似乎正在工作......除了该脚本复制/删除两行而不是一个。不知道发生了什么,非常感谢帮助。
所以,经过一点挖掘,我越来越接近答案。我为onEdit触发器单元格设置了条件格式,看来我的函数检查单元格的值被调用两次,一次输入值时,再次应用格式时。任何关于如何避免这种情况的见解仍然值得赞赏。 – fleadram
你的条件格式是什么样的? –