如何使用开关案例设置Google表格标签颜色

时间:2017-09-28 20:56:45

标签: google-apps-script google-sheets

我能够使用我在其他地方找到的代码更改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");
}
}

1 个答案:

答案 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");
  }
}