【发布时间】:2018-05-30 03:38:33
【问题描述】:
我有一张包含超过 100,000 个单元格(很快将超过 300,000 个单元格)的表格用作甘特图。每个单元格都有一个 IF 公式,如果相应列的标题(日期)在行的开始日期和结束日期之间,则返回字母 X。
但是,显着降低工作表速度的是其背后的条件格式。条件格式表示如果单元格的值为 X,则将单元格的背景颜色和字体颜色更改为绿色。如果没有 X,则背景颜色应为白色。据我了解,由于条件格式会在您对工作表进行任何编辑时重新计算,因此性能非常差。所以我的想法是删除条件格式并将其添加为脚本,并带有一个菜单按钮,我可以随时单击它运行,而不是每次我对工作表进行编辑时运行条件格式。
这是我使用脚本的地方,但它不起作用。我已经尝试了几十种变体,但找不到有效的方法 - 有时我让它运行没有错误,有时会出现错误。我的上下文是不是哪里错了?
function formatting() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet 1");
var range = ss.getRange("A1:A100");
var cellValue = range.getValues();
if (cellValue === 'X') {
ss.range.setBackgroundColor('#000000'); }
else {
cellValue.setBackgroundColor('#ffffff'); }
}
【问题讨论】:
标签: google-apps-script google-sheets gs-conditional-formatting