Google 工作表:动态更改活动单元格中的值?
Google Sheets: Change value in active cell dynamically?
我正在尝试根据颜色变化来更改单元格值...当我更改单元格中的颜色时,没有任何反应。没有为单元格设置文本。
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;
}
}
要让函数触发,您需要设置一个触发器,简单的或可安装的。
最简单的方法是将函数重命名为 onEdit
,这将自动充当简单触发器。
或者,您可以通过转到 Resources
菜单和 Current Projects Triggers
来设置可安装的触发器,单击 no triggers setup...
文本,然后单击 select 您的函数, select 来自电子表格,然后 select 进行编辑,如下图所示。
我试了一下,注意到两件事。首先,您必须对颜色使用十六进制代码而不是名称,即 #ff0000
而不是 red
。此外,似乎更改单元格的背景颜色不被视为编辑。因此,如果您更改单元格的颜色,然后在其中键入任何内容(即使是单个 space 也可以),退出单元格后,文本将更改为您想要的内容。以下对我有用 - 我使用单个 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;
}
}
我正在尝试根据颜色变化来更改单元格值...当我更改单元格中的颜色时,没有任何反应。没有为单元格设置文本。
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;
}
}
要让函数触发,您需要设置一个触发器,简单的或可安装的。
最简单的方法是将函数重命名为 onEdit
,这将自动充当简单触发器。
或者,您可以通过转到 Resources
菜单和 Current Projects Triggers
来设置可安装的触发器,单击 no triggers setup...
文本,然后单击 select 您的函数, select 来自电子表格,然后 select 进行编辑,如下图所示。
我试了一下,注意到两件事。首先,您必须对颜色使用十六进制代码而不是名称,即 #ff0000
而不是 red
。此外,似乎更改单元格的背景颜色不被视为编辑。因此,如果您更改单元格的颜色,然后在其中键入任何内容(即使是单个 space 也可以),退出单元格后,文本将更改为您想要的内容。以下对我有用 - 我使用单个 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;
}
}