7

在我们的营销公司/代理机构,我们使用Google表格中的主跟踪器来跟踪我们为客户处理的所有付费广告活动。文档变得越来越长,我们使用的各种条件格式规则越来越沉重,并且对文档所做的任何更改都变得越来越慢。如何加快繁重的条件格式规则

五名员工在任何给定时间使用该文档,在对活动进行任何更改时更改“状态”列 - 是否准备好上载,是否为现场,是否暂停等。条件格式化只是根据“STATUS”列中的值更改每行的颜色。它还会查看开始/结束日期,并在出现问题时将线标记为红色。等等

如何加快使用此文档的处理速度? I have created a minified version of our tracker with one line for each conditional formatting rule to make it easy for you to have a look.

我确定有更聪明的方法来整合规则和/或构建脚本,以更轻松,更高效地处理任务。

+0

我建议你尝试应用到1列,而不是26 – pnuts

+0

显然是最直接的解决方案,谢谢指点出来。如果我们希望保留整个行,我相信有更多流程效率的方式来完成我们所做的事情?就像合并规则和/或完全找到不同的解决方案一样。对此有何想法? –

回答

4

此答案使用脚本在状态发生变化(适用于“READY”,“LIVE”和“DONE”)时更改行的背景颜色。

现场演示: https://docs.google.com/spreadsheets/d/1bVwM1wSBVlZTmz5S95RXSrRQxlTKWWN_Hl4PZ81sbGI/edit?usp=sharing

的脚本下的 “工具 - 脚本编辑器...” 可视菜单。它由一个“onEdit”触发器激活(见Is it possible to automate Google Spreadsheets Scripts (e.g. without an event to trigger them)?)。

这里是脚本本身:

function onEdit(e) { 

    var STATUS_COL = 18; 
    var MAX_COLS = 18; 

    var COLOR_READY = "grey"; 
    var COLOR_LIVE = "#512da8"; 
    var COLOR_DONE = "green"; 

    var activeSheet = SpreadsheetApp.getActiveSheet(); 
    var cell = activeSheet.getActiveSelection(); 
    var val = cell.getValues()[0][0]; 
    var color = null; 

    switch (val) { 
    case "READY": 
     color = COLOR_READY; 
     break; 
    case "LIVE": 
     color = COLOR_LIVE; 
     break; 
    case "DONE": 
     color = COLOR_DONE; 
     break; 
    } 

    if (color != null) { 
    var row = activeSheet.getRange(cell.getRow(), 1, 1, MAX_COLS); 
    row.setBackgroundColor(color); 
    } 

} 
+0

有趣!有几个问题,脚本的资源比CF要少?如果我需要同时调整每行文本的颜色(更改背景颜色和文本颜色),那么对此的附加代码是什么? –

+0

我不知道脚本是否比CF更耗费资源。文字颜色的功能是“setFontColor”,请参阅https://developers.google.com/apps-script/reference/spreadsheet/range#setfontcolorcolor。 – opowell

+0

感谢您的帮助,赏金是您的:-)如果您有一个解决方案来处理文档中的其他conditaionl格式化规则,那也是最有帮助的。有几个重叠的部分,需要按照一定的顺序运行才能正常工作,而我仍然在努力。 –