在谷歌表格上,我有一个单列数据集,其中每个单元格都包含十六进制颜色名称(即#eac285
)
如何以编程方式将下一列中相应单元格的背景颜色设置为这些颜色?
我可以用 "=function(x)"格式执行此操作
最佳答案
说明:
这个想法是获取包含十六进制颜色的列的值,然后使用 setBackgrounds在其旁边的列上设置背景颜色。
您无法将此解决方案用作自定义函数(工作表中的自定义公式),因为自定义函数不允许使用需要权限的方法,例如为工作表设置值。有关此限制的更多详细信息,请参阅 official documentation .
如果您想要一种更用户友好的方式来执行此操作,您可以从脚本编辑器运行以下脚本(根据您的场景进行调整)和/或创建一个自定义菜单来从那里执行它。
代码片段:
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const sh = ss.getSheetByName("Sheet1");
const hex_colors = sh.getRange('A1:A'+sh.getLastRow()).getValues();
sh.getRange('B1:B'+sh.getLastRow()).setBackgrounds(hex_colors);
}
用于代码片段的示例表:
关于javascript - 如果前一个单元格包含十六进制颜色名称,如何更改单元格的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65944323/