【发布时间】:2021-09-29 09:50:12
【问题描述】:
我正在尝试根据同一行上的其他单元格字体编辑单元格字体,但我无法使用我看到的自定义函数编辑它们的样式。
我的问题是如何做到这一点?
这是我的代码:
function colorCells(nameRange, valueRange) {
var redHex = "#ff0000";
var orangeHex = "#ff6d01";
var activeRange = SpreadsheetApp.getActiveRange();
var activeSheet = activeRange.getSheet();
var range = activeSheet.getRange(valueRange);
var rangeColor = range.getFontColors();
console.log(rangeColor);
var newColors = rangeColor.map(r => r.includes(redHex) ? redHex : r.includes(orangeHex) ? orangeHex : '#000000');
console.log(newColors);
var rangeToColor = activeSheet.getRange(nameRange)
for (let i = 1; i <= rangeToColor.getNumRows(); i++) {
const cell = rangeToColor.getCell(i, 1);
cell.setFontColor(newColors[i-1])
}
return "";
}
编辑:
为了解释我的目标,我有一列字符串,每列都有一行数据。而且我希望某些数据根据条件格式具有不同的字体颜色。
所以我希望如果一行中的任何数据是红色或橙色,则相关的列字符串将其颜色更改为相同的颜色。这是图像上的示例。
在应用函数/脚本之前:
之后:
【问题讨论】:
-
据我所知,自定义函数只能更改公式所属的单元格(并在某些情况下填充调整的单元格)。它可以读取工作表上的任何范围,但不要更改它。 developers.google.com/apps-script/guides/sheets/…
-
好的,我该怎么做?是否可以选择要编辑的范围?
-
使用conditional formatting不是你想要的吗?使用
Custom formula选项专门激活规则(它允许从其他单元格获取数据)。 -
是的,但条件格式不能应用于单元格格式,只能应用于值(或者我不知道)
-
我相信它可以通过例如可以通过自定义菜单运行的脚本功能来完成。具体如何取决于您的工作流程。从您的代码中,我无法判断它究竟是如何工作的。您需要更详细地描述您拥有什么、正在做什么以及想要获得什么。
标签: google-apps-script google-sheets custom-function