我正在使用Google Spreadsheets,我正在尝试执行以下操作:
当我更改单元格D2的颜色时,如何获得一系列单元格(R2:V2)以匹配D2的背景颜色。
例如: 如果我将D2的背景颜色更改为红色。我希望单元格R2到V2格式化为相同的红色。
如果我将D3的背景颜色更改为绿色。我希望单元格R3到V3格式化为相同的绿色。
谢谢!
答案 0 :(得分:1)
简短的回答是你不能。
答案很长:
如果您查看Google Apps脚本documentation以了解自定义功能,您将看到可以执行的所有功能的列表。
问题是您只能设置值,而不能设置单元格的颜色。您将获得拒绝许可。
为了向您展示,请查看以下脚本:
function colorChanger(text, cellref, colorref) {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var color = sheet.getRange(colorref).getBackground();
var cell = sheet.getRange(cellref);
cell.setBackground(color);
return text;
}
理论上,应该可以工作,但是脚本不支持它。
在google-sheets中运行时,您会收到以下信息:
根据他们的文件,他们说:
如果您的自定义函数抛出了您没有的错误消息 允许调用X服务。该服务需要用户授权 因此不能用于自定义功能。
参考:https://developers.google.com/apps-script/guides/sheets/functions
答案 1 :(得分:1)
您可以使用onChange:
执行此操作function onChange(e) {
var ss=SpreadsheetApp.getActiveSpreadsheet()
var s=ss.getActiveSheet()
Logger.log(e.changeType);//e.changeType will equal FORMAT
var clr1=s.getRange("D2").getBackground()
var clr2=s.getRange("R2").getBackground()
if(clr1 != clr2){
var clr3=s.getRange("R2:V2").setBackground(clr1)
}}
当条件格式更改D2或其他函数的背景颜色(函数需要调用onChange())时,这也很有用。