0
我不熟悉Google应用脚本。目前,我试图创建一个插入行检测器,并根据行右边的值更新新行中的值。在线阅读文档&其他内容,我创建了以下代码。但问题是它不起作用。无法检测通过Google应用程序脚本在Google工作表中插入行吗?
如何创建一个通用行检测器或如何解决这个问题?
代码:
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]
你知道是什么原因导致的onEdit错误?除onChange函数外还有其他代码吗?任何已安装的触发器? –
不完全确定。那么最初我有一个onEdit触发器工作得很好,但代码编辑器运行按钮有能力只选择一个功能,所以我删除了它,并尝试运行此。无论如何,这段代码没有任何部分是专有的,并且可以很容易地由以前做过这件事的任何人重新创建。只要把它放在那里,以显示我的尝试。我认为如果你可以重新编写基本代码,它会更好。 – Deepak