Google表格脚本标签颜色

时间:2017-04-21 17:28:25

标签: google-apps-script

我对整个“脚本游戏”都很陌生,这对你们大多数人来说可能是件小事。

无论如何,我试图让我的脚本根据单元格A1的值更改特定的选项卡颜色。

如果A1的值为1,则表格颜色需要设置为红色。 如果A1的值为0,则需要将工作表颜色设置为null。

不要介意细胞5和6,因为它们按预期工作。

这是我到目前为止所做的,但它没有按预期工作:

function onEdit(e) {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var ss1 = SpreadsheetApp.getSheetByName("1");
 var ss3 = SpreadsheetApp.getSheetByName("3");
 var first = ss.getSheetByName("1");
 var third = ss.getSheetByName("3");
 var cell1 = ss.getRange("A1");
 var cell3 = ss.getRange("A1");
 var cellContent1 = cell1.getValue();
 var cellContent3 = cell3.getValue();
 var cell5 = ss.getRange("B2");
 var cell6 = ss.getRange("C2");
 cell5.setValue(Utilities.formatDate(new Date(), 'GMT+2', 'dd.MM.yyyy'));
 cell6.setValue(Utilities.formatDate(new Date(), 'GMT+2', 'HH:mm:ss'));
  if (cellContent1 == 1) {
 first.setTabColor("ff0000");
  }
  if (cellContent1 == 0) {
 first.setTabColor(null);
  }
  if (cellContent3 == 1) {
 third.setTabColor("ff0000");
  }
  if (cellContent3 == 0) {
 third.setTabColor(null);
  }
}

2 个答案:

答案 0 :(得分:1)

在您的代码变量中,单元格1和2正在访问同一个工作表(活动工作表)。要访问名为1和3的工作表中的值,您将修改如下代码:

function onEdit(e) {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var first = ss.getSheetByName("1");
 var third = ss.getSheetByName("3");
 var cell1 = first.getRange("A1");
 var cell3 = third.getRange("A1");
 var cellContent1 = cell1.getValue();
 var cellContent3 = cell3.getValue();
 var cell5 = ss.getRange("B2");
 var cell6 = ss.getRange("C2");
 cell5.setValue(Utilities.formatDate(new Date(), 'GMT+2', 'dd.MM.yyyy'));
 cell6.setValue(Utilities.formatDate(new Date(), 'GMT+2', 'HH:mm:ss'));
  if (cellContent1 == 1) {
 first.setTabColor("ff0000");
  }
  if (cellContent1 == 0) {
 first.setTabColor(null);
  }
  if (cellContent3 == 1) {
 third.setTabColor("ff0000");
  }
  if (cellContent3 == 0) {
 third.setTabColor(null);
  }
}

另请注意,我删除了一些未使用或冗余的行。

希望有所帮助

答案 1 :(得分:0)

也许这会对你有帮助。

function tabColor() 
{
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sht = ss.getActiveSheet();
 var cell = sht.getActiveCell();
 var cellContent = cell.getValue();
 if (cellContent) 
 {
    sht.setTabColor("ff0000");
 }
 if (!cellContent) 
 {
    sht.setTabColor("ffffff");
 }
}