我正在尝试根据颜色更改来更改单元格值...当我更改单元格中的颜色时,什么都没有发生。没有为该单元格设置任何文本。
function createSpreadsheetEditTrigger() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger(status)
.forSpreadsheet(ss)
.onEdit()
.create();
}
function status() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cell = sheet.getActiveCell(); // Returns the active cell
var currentColor = cell.getBackgroundColor();
switch(true) {
case currentColor === '#ffdc32':
cell.setValue('IN PROGRESS');
break;
case currentColor === 'green':
cell.setValue('COMPLETED');
break;
case currentColor === 'red':
cell.setValue('ERRORS');
break;
}
}
我尝试了一下,发现了两件事。首先,你必须使用十六进制代码的颜色,而不是名称,即#ff0000
代替red
。同样,似乎更改单元格的背景色也不被视为编辑。因此,如果您更改单元格的颜色,然后在其中键入任何内容(即使是单个空格也可以),退出单元格后,文本将更改为您想要的内容。以下为我工作的作品-我使用了onEdit(e)
一个触发器而不是一个完全触发,并根据颜色进行了切换:
function onEdit(e){
var cell = e.source.getActiveSheet().getActiveCell();
var currentColor = cell.getBackgroundColor();
switch (currentColor){
case '#ffdc32':
cell.setValue('IN PROGRESS');
break;
case '#00ff00':
cell.setValue('COMPLETED');
break;
case '#ff0000':
cell.setValue('ERRORS');
break;
default:
break;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句