我正在尝试添加和删除工作表中表格内的单元格边框,具体取决于单元格是否有数据。一旦在我的脚本中运行另一个函数,该表就会填充数据。我构建的代码添加了边框,但是,如果单元格返回空,则不会删除边框。此外,它还添加了额外的边框行而不是单行。例如,如果将数据输入到单元格 C7 中,它将在 C7 之后添加另外 6 行(对于 range2 变量)。我该如何解决这个问题?我在下面提供了我的代码:
function onEdit() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet1 = ss.getSheetByName('Form Response Data');
const sheet2 = ss.getSheetByName('Data Overview');
const sheet3 = ss.getSheetByName('Summarized Data');
var range1 = sheet2.getRange(1,1,sheet2.getLastRow(),10);
var range2 = sheet3.getRange(7,3,sheet3.getLastRow(),5); //.getLastRow method added for last row in table that generates
var range3 = sheet3.getRange(7,9,sheet3.getLastRow(),5); //.getLastRow method added for last row in table that generates
var value1 = range1.getValues();
var value2 = range2.getValues();
var value3 = range3.getValues();
if (value1 === "") { range1.setBorder(false, false, false, false, false, false);}
else {range1.setBorder(true, true, true, true, true, true);}
if (value2 === "") { range2.setBorder(false, false, false, false);}
else { range2.setBorder(true, true, true, true, true, true);}
if (value3 === "") { range3.setBorder(false, false, false, false, false, false);}
else { range3.setBorder(true, true, true, true, true, true);}
}
尝试这样的事情:
我使用了可安装的触发器。我认为你不需要。我使用它是因为它对我来说很容易创建。
function onMyEdit(e) {
e.source.toast("Entry");
let sh = e.range.getSheet();
let rg = sh.getDataRange();
if(sh.getName() == "Sheet0" && e.range.columnStart <= rg.getLastColumn() && e.range.rowStart > 1 ){
e.source.toast('gate');
if(!e.value){
e.range.setBorder(false,false,false,false,false,false);
} else {
e.range.setBorder(true,true,true,true,true,true);
}
}
}