在编辑时添加和删除单元格边框

问题描述 投票:0回答:1

我正在尝试添加和删除工作表中表格内的单元格边框,具体取决于单元格是否有数据。一旦在我的脚本中运行另一个函数,该表就会填充数据。我构建的代码添加了边框,但是,如果单元格返回空,则不会删除边框。此外,它还添加了额外的边框行而不是单行。例如,如果将数据输入到单元格 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);} 
 }
if-statement google-apps-script border google-workspace
1个回答
0
投票

尝试这样的事情:

我使用了可安装的触发器。我认为你不需要。我使用它是因为它对我来说很容易创建。

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);
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.