我是谷歌应用脚本的新手。目前,我正在尝试创建一个插入行检测器,并根据它上面的行的值更新该行中的值。阅读文档&在网上的其他东西,我创建了以下代码。但问题在于它不起作用。
如何创建通用行检测器或如何解决此问题?
代码:
function onChange(e){
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange('A1').setBackground('green');
//e.range.setNote('Last modified: ' + new Date().toLocaleTimeString() + ' getActiveUser().getEmail(): ' + Session.getEffectiveUser() );
if (e.changeType == "INSERT_ROW") {
sheet.getRange('A1').setBackground('red');
// a row or many rows were inserted
if (e.source.getActiveSheet().getName() == "UIDAICheck") {
// Let's set the formula for calculating the End Date / Time of inserted lines
sheet.getRange('A1').setBackground('blue');
var iRow = e.source.getActiveSheet().getActiveRange().getRow();
var iRows = e.source.getActiveSheet().getActiveRange().getNumRows();
var aRange = SpreadsheetApp.getActiveSpreadsheet().getActiveRange();
aRange.setValue('555')
}
}
}
如果存在非代码相关的更改,例如安装可安装触发器或其他内容,请分享我如何能够连接这些点以及能够自动填充行插入的单元格值?不可否认,我是这个领域的新手。
PS:我不认为这段代码的任何部分都有效。这是我的执行记录:
[17-09-23 13:25:46:950 IST] SpreadsheetApp.getActiveRange() [0 seconds]
[17-09-23 13:25:46:950 IST] Range.getRow() [0 seconds]
[17-09-23 13:25:46:950 IST] Range.getLastRow() [0 seconds]
[17-09-23 13:25:46:950 IST] Range.getColumn() [0 seconds]
[17-09-23 13:25:46:950 IST] Range.getLastColumn() [0 seconds]
[17-09-23 13:25:47:049 IST] Session.getActiveUser() [0.098 seconds]
[17-09-23 13:25:47:050 IST] User.getEmail() [0 seconds]
[17-09-23 13:25:47:050 IST] SpreadsheetApp.getActiveSpreadsheet() [0 seconds]
[17-09-23 13:25:47:058 IST] Starting execution
[17-09-23 13:25:47:103 IST] Execution failed: Script function not found: onEdit [0 seconds total runtime]
答案 0 :(得分:0)
我还没有对此进行过测试,但试一试。
function MyChange(e){
var sheet = SpreadsheetApp.getActiveSheet();
if(sheet.getRange('A1').getBackground()!='#ff0000')
{
sheet.getRange('A1').setBackground('#00ff00');
}
if (e.changeType == "INSERT_ROW")
{
sheet.getRange('A1').setBackground('#ff0000');
if (sheet.getName()=="UIDAICheck")
{
sheet.getRange('A1').setBackground('#0000ff');
sheet.getActiveRange().setValue('555');
}
}
}
安装onChange触发器: