Только что написал это, основываясь на примере скрипта .setTabColor()
, предоставленном Google в документации Class Sheet .
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var numSheets = ss.getNumSheets();
var active = ss.getActiveSheet();
var tabCol = active.getTabColor();
if (tabCol == null) {
//loop through all sheets and clear tab colour.
for (var i = 0; i < numSheets; i++) {
sheets[i].setTabColor(null);
}
active.setTabColor("ff0000"); //change ff0000 to whatever colour hex value you'd like.
}
}
По сути, этот сценарий проверит, назначен ли редактируемый вами лист цветом, если он это сделает, то ничего не будет делать, если нет, то он придаст ему цвет. Я включил базовый цикл for, чтобы пройти через все листы и очистить их цвета, чтобы только для цвета, который вы редактируете в настоящий момент, был назначен цвет.