Google表格脚本,在插入行后保持条件格式

道格拉斯·霍布森

我有一个电子表格,其中有从第6行开始的项目列表。第五行保留用于输入新项目的详细信息。然后,我使用自定义按钮将项目添加到列表(在第6行上方插入新行,将第5行复制到第6行,清除第5行)。我的问题是我在A:C列上进行了条件格式设置,并且'addItem'运行之后,新行不包含在条件格式设置规则中,它从'A1:C1211'变为'A1:C4,A6:C1211'(随着添加更多项目,差距也会增加)。如何将格式设置规则应用于新行,或者之后再更新规则以包括新行?

在工作表中手动插入行可保持格式,因此不确定为什么不使用脚本进行维护。

function addItem() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  var poshSheet = spreadsheet.getSheetByName("Posh");
  var data = spreadsheet.getSheetByName("Background Data");

  var cell;
  var inputRow = poshSheet.getRange('A5:R5');
  var insertRow = poshSheet.getRange('A6:R6');

  if(inputRow != null){  
    //get and updateItemNo
    var itemNo = data.getRange('D12').getCell(1, 1).getValue();
    inputRow.getCell(1,1).setValue(itemNo);
    data.getRange('D12').getCell(1, 1).setValue(itemNo+1);

    //insert blank row at top 
    poshSheet.insertRowBefore(6);
    //copy input 
    inputRow.copyTo(insertRow);

    //clear input row
    inputRow.clear()
  }  
}
Tanaike

我认为您提出这个问题的原因是inputRow.clear()在这种情况下,格式也将清除。由此,范围被分割。那么如何进行如下修改?

从:

inputRow.clear();

至:

inputRow.clear({contentsOnly: true});

要么

inputRow.clearContent();

注意:

  • 在这种情况下,将清除单元格值而不拆分范围。

参考文献:

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章