如何从Google电子表格的另一张纸上获取带有文本的彩色单元格?
您好,我有2张纸,我正在尝试从第1张纸到第2张纸上带有文本的彩色单元格。
有人可以帮我吗?
示例:
在工作表1中,我将数据放入第1列的第1行,然后为其着色 同时显示黄色,它将显示在工作表2的第1列第1行中。
答案 0 :(得分:1)
复制所有内容
如果要复制所有内容,包括Range
值,颜色,背景色等,请使用简单的copyTo()
方法。只需记住Range
的尺寸应该相等(ofc,您可以随时添加相应的处理内容)。
/**
* Copies all;
* @param {Range} source copy from range;
* @param {Range} target copy to range;
*/
function copyAll(source,target) {
source.copyTo(target);
}
有条件的副本
如果您只想复制Range
的特定属性,可以使用copyTo()
枚举来调用上述CopyPasteType
方法,如下所示(请注意,由于与两个冲突-arg调用copyTo(range,options)
,需要转置arg-如果您不希望方向发生变化,则可以在函数内部对其进行硬编码):
/**
* Copies only specific props;
* @param {Range} source copy from range;
* @param {Range} target copy to range;
* @param {String} type enum CopyPasteType;
* @param {Boolean} transposed change orientation or not;
*/
function copyConditional(source,target,type,transposed) {
var t = SpreadsheetApp.CopyPasteType[type];
source.copyTo(target,t,transposed); //if transpose is not specified, will be treated as copyTo(destination,options)!;
}
通过getter和setter复制
例如,分别使用getBackgrounds()
和setBackgrounds()
(还有许多其他的getter-setter方法可以代替copyTo()
单独使用,请参见Range
有用链接中的参考)。
/**
* Copies background color;
* @param {Range} source copy from range;
* @param {Range} target copy to range;
*/
function copyColor(source,target) {
var color = source.getBackgrounds();
target.setBackgrounds(color);
}
有用的链接