1

我有一个电子表格,其中有一个从第 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()
  }  
}
4

1 回答 1

2

我认为你的问题的原因是inputRow.clear()。在这种情况下,格式也会被清除。这样,范围就被分割了。那么如何修改如下?

从:

inputRow.clear();

至:

inputRow.clear({contentsOnly: true});

或者

inputRow.clearContent();

笔记:

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

参考:

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

于 2020-03-06T03:31:42.893 回答