我能够使用我在其他地方找到的代码更改Google表格中标签的颜色:
function onEdit(e) {
if (e.range.getA1Notation() != 'D1') return
e.source.getActiveSheet()
.setTabColor(e.value == 'Asphalt' ? 'red' : null)
}
但是,我希望能够使用Switch Case基于一系列选项实际更改选项卡颜色。这是我到目前为止,但它没有工作
function onEdit(e) {
var ss = e.SpreadsheetApp.getActiveSpreadsheet()
var trade = ss.getRange("D1")
switch(trade){
case "Asphalt":
e.setTabColor("0000FF");
break;
case "Cabinetry":
e.setTabColor("FF0000");
break;
default:
e.setTabColor("008000");
}
}
答案 0 :(得分:0)
你非常接近,有几个问题如下:
var ss = e.SpreadsheetApp.getActiveSpreadsheet()
e
参数返回一个对象,其中包含有关编辑事件的各种信息。
e.source
返回编辑发生的 Spreadsheet 对象。所以,改为:
var ss = e.source.getActiveSheet();
获取编辑发生的实际工作表。
现在ss
是活动工作表var trade = ss.getRange("D1")
将获取该单元格,但您需要从该单元格中获取值。所以,改为:
var trade = ss.getRange("D1").getValue(); To get the value in the cell.
在您的开关栏中,将e
更改为ss
function onEdit(e) {
var ss = e.source.getActiveSheet();
var trade = ss.getRange("D1").getValue();
switch(trade){
case "Asphalt":
ss.setTabColor("0000FF");
break;
case "Cabinetry":
ss.setTabColor("FF0000");
break;
default:
ss.setTabColor("008000");
}
}