我写了这个看似简单的脚本,将背景颜色从一列复制到另一列。
当我运行脚本时,我没有收到任何错误消息,但似乎没有发生任何事情。
这是我在纸张上输入单元格的内容:
=copyColor("B:B", "A:A")
我在Google Apps脚本论坛上阅读了一篇帖子,暗示这种类型的程序是不可能的,但我决定编写一个可以将其删除的脚本。
以下是the post所说的内容:
"正如文档中清楚解释的那样,自定义函数返回值,但是它们不能在它们所在的单元格之外设置值。在大多数情况下,单元格A1中的自定义函数不能修改单元格A5。当然,对于其他方法也是如此,例如setBackground等。"
这就是为什么我试图通过不使用setBackgrounds()
函数解决问题。
还有其他方法吗?或者有什么方法可以解决我的问题吗?
function copyColor(rangeToCopy, rangeToPaste)
{
//an array to store the first background colors
var firstColors = [];
//an array to store the second background colors
var secondColors = [];
//this will assign the first range into a variable
var firstRange = SpreadsheetApp.getActiveSheet().getRange(rangeToCopy);
//this will store the colors of the range into the firstColors array
firstColors = firstRange.getBackgrounds();
//this will assign the second range to a variable
var secondRange = SpreadsheetApp.getActiveSheet().getRange(rangeToPaste);
//this will store the colors of the range into the secondColors array
secondColors = secondRange.getBackgrounds();
//compare the two color arrays. if they do not match, apply the first array to the second array
if (firstColors != secondColors)
{
secondColors = firstColors
}
}