如何在Google电子表格的工作表(标签)之间使用FILTER中的值复制单元格格式?

时间:2019-11-19 06:21:29

标签: google-apps-script google-sheets google-sheets-api google-sheets-formula

我在sheet1中有一张大数据表,我想在一个单独的sheet2中过滤其值和样式,以查看受限制的子集。

基于sheet2!B1中的搜索键,我正在使用的公式可以很好地复制过滤后的数据(基本上在sheet1的B列为空白或C列为空白时复制整个数据行)与我在sheet2!B1中的约束匹配):

=FILTER('sheet1'!B:Q, if(isblank('sheet1'!B:B), true, 'sheet1'!C:C = B1))

但是,根本不会复制任何样式。是否还有另一个可以复制格式的内置函数,或者可以以某种方式附加的简单自定义函数来复制值和样式?

1 个答案:

答案 0 :(得分:0)

您可以将Apps脚本绑定到电子表格[1],并假设源格式在电子表格的第一页中,而目标范围在第二页中,则可以运行以下功能:

function formatIt() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var source = ss.getSheets()[0];
  var destination = ss.getSheets()[1];

  var range = source.getRange("B2:D4");
  range.copyFormatToRange(destination, 4, 6, 4, 6);  
}

这将使用copyFormatToRange函数[2]将格式从“ B2:D4”单元格复制到“ D4:F6”。

[1] https://developers.google.com/apps-script/guides/bound

[2] https://developers.google.com/apps-script/reference/spreadsheet/range.html#copyformattorangesheet,-column,-columnend,-row,-rowend