我的脚本中有一个函数,用于修剪电子表格列中的数据。这在手动调用时可以很好地工作,但在通过定时触发器运行时总是失败。在我看来,就像一个错误,但我想我应该先问这里,因为可能有一些我错过了。这是我的代码。当通过触发器运行时,SpreadsheetApp getRange失败
function trimColumnValues(columnIndex) {
try {
columnIndex = columnIndex || 2;
var config = PropertiesService.getScriptProperties()
.getProperties();
var firstDataRow = parseInt(config.FIRST_DATA_ROW);
var sheet = SpreadsheetApp.openById('valid_spreadsheet_id')
.getSheetByName(config.MAIN_SHEET_NAME);
var lastRow = sheet.getLastRow();
var noColumns = lastRow - firstDataRow;
var range = sheet.getRange(firstDataRow + 1, columnIndex, noColumns);
var data = range.getValues();
for (var i in data) {
data[i][0] = data[i][0].toString().replace(/^\s+|\s+$/g,"");
}
range.setValues(data);
} catch(e) {
MailApp.sendEmail("[email protected]", "Error in script",
"Error: " + e.message + ". Line: " + e.lineNumber);
}
}
我收到我的电子邮件中的错误是:
Error: Cannot convert [object Object] to (class).. Line: 28
第28行:var range = sheet.getRange(firstDataRow + 1, columnIndex, noColumns);
无关,但从来没有对数组(谷歌它)为(var我在数据) –
感谢您的评论。我现在更清楚了。 – jad