提问人:Ademola 提问时间:10/26/2023 最后编辑:Ademola 更新时间:10/26/2023 访问量:22
在编辑时添加和删除单元格边框
Add and remove cell borders on edit
问:
我正在尝试在工作表的表格中添加和删除单元格边框,具体取决于单元格是否具有数据。在我的脚本中运行另一个函数后,该表将填充数据。我构造的代码添加了边框,但是,如果单元格返回空,则不会删除边框。此外,它还添加了额外的边框行,而不是单行。例如,如果在单元格 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);}
}
答:
0赞
Cooper
10/26/2023
#1
尝试这样的事情:
我使用了一个可安装的触发器。我认为你不需要。我使用它是因为它很容易为我创建。
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);
}
}
}
评论