我对整个“脚本游戏”都很陌生,这对你们大多数人来说可能是件小事。
无论如何,我试图让我的脚本根据单元格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);
}
}
在您的代码变量中,单元格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);
}
}
另请注意,我删除了一些未使用或冗余的行。
希望有所帮助
也许这会对你有所帮助。
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");
}
}