我有一个Google电子表格,用于跟踪客户端为应用程序请求的配置信息的状态。例如。文本按下按钮。 我有一个列有'状态'在顶部和单元格' List from Range'下面行中的数据验证。使用的范围包括'与客户',' With Me','已完成'。我还有一个右侧的列,我用它来手动添加上次状态更改时的日期。我想要的是将日期自动更改为今天更改状态的日期。我相信它可以用脚本完成,但我以前从未使用过。
答案 0 :(得分:14)
另一个答案以一个好主意开始,但不幸的是建议的代码不起作用,因为它有许多基本错误(显然它没有经过测试......)
所以这是一个简单的版本:
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var activeCell = sheet.getActiveCell();
var col = activeCell.getColumn();
var row = activeCell.getRow();
if (col == 2 ) { // assuming status is in column 2, adapt if needed
sheet.getRange(row, col+1).setValue(new Date()).setNumberFormat('MMM dd yyyy');// change the display format to your preference here
}
}
答案 1 :(得分:1)
column 'Status' column 'date'
row 'List from Range' 12-08-20014
row 'Data Validation' -----------
范围{'与客户','与我','完成'}
如果您打开脚本编辑器并添加以下代码,请使用相关值替换BOLD TERMS。 onEdit()不需要触发器,因为它是一个'特殊'函数,除非你共享工作表并需要otehrs以开发人员权限运行它。
onEdit() {
var sheet = e.source.getActiveSheet();
var col = activecell.getColumn(); // numeric value of column, ColA = 1
var row = activecell.getRow(); // numeric value of row
if (col == PUT IN THE NUMBER OF YOUR COLUMN 'Status') {
sheet.getRange(row, col+1) = Date();
}
答案 2 :(得分:1)
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var activeCell = sheet.getActiveCell();
var col = activeCell.getColumn();
var row = activeCell.getRow();
if (col == 2) {
sheet.getRange(row, 1).setValue(new Date()).setNumberFormat('dd/MM/yyyy H:m:s');
}
}