将一个范围复制到另一个具有数据验证、格式等的电子表格中



我设法将值和公式从一个范围复制到另一个电子表格范围(大小相同(。

将范围复制到另一个电子表格

我需要将格式、字体、颜色、边框、数据验证等复制到另一个电子表格中的新范围。

有可能吗?

实际上有多种方法可以通过内置方法而不是手动实现。最简单的方法是使用copyTo()。这会将您提到的所有内容从源范围复制到目标。它工作原理的简单示例:

//Replicate rangeA on rangeB
let ss = SpreadsheetApp.getActiveSpreadsheet();
let source = ss.getSheetByName("Sheet1")
let destination = ss.getSheetByName("Sheet2");

let rangeA = source.getRange("A1:A5");
let rangeB = destination.getRange("A1");

rangeA.copyTo(rangeB);

如文档中所述,只有目标区域中左上角的单元格位置是相关的,因此您只需要指定一个单元格,该方法只会相应地展开复制的数据。

如果你需要缩小你需要复制的范围,还有其他方法可以只复制某些部分,对于格式化,你可以使用copyFormatToRange(),对于值,你可以用copyValuesToRange(),对于数据验证,你首先需要用getDataValidations()获取它们,然后用setDataValidations()单独设置它们。公式与getFormulas()setFormulas()类似,依此类推

我建议您查看文档以获取更多的代码示例。Range对象实际上有很多有用的方法来操纵范围:

  • 类别范围

最新更新