首页 > 解决方案 > 如何在谷歌电子表格中跨工作表(标签)复制带有过滤器中值的单元格格式?

问题描述

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

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

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

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

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-apigoogle-sheets-formula

解决方案


您可以将 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


推荐阅读