Google apps script 函数在它之前给出了一个错误';有人叫他
这个问题是关于GoogleApps脚本的,它是基于JavaScript的,所以我们添加了JavaScript标签,希望能够吸引更多的追随者。不确定我的问题是否特定于环境 下面是一个小脚本:Google apps script 函数在它之前给出了一个错误';有人叫他,google-apps-script,google-sheets,Google Apps Script,Google Sheets,这个问题是关于GoogleApps脚本的,它是基于JavaScript的,所以我们添加了JavaScript标签,希望能够吸引更多的追随者。不确定我的问题是否特定于环境 下面是一个小脚本: function onEdit() { // create the campaign portfolio lookup function function channelLookup(month_num) { var lookup_formula = '=ARRAYFORMULA(if($A
function onEdit() {
// create the campaign portfolio lookup function
function channelLookup(month_num) {
var lookup_formula = '=ARRAYFORMULA(if($A$16:$A="",,iferror(VLOOKUP($C$16:$C,lookups!$E$3:$F$100,2,false),"not recognized in lookup")))';
var the_cell = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('starts ' + month_num + ' month' ).getRange('E16');
var cell_content = the_cell.getValues();
if(cell_content == "") {
the_cell.setFormula(lookup_formula);
} else {
Logger.log('the_cell is not empty');
}
}
// loop through the 13 reports
for ( var i=0; i<14; i++ ) {
channelLookup(i);
}
}
字符串连接可能没有按您认为的那样进行。错误清楚地表明
getSheetByName()
的结果是null
只是为了说服自己,而不是:
var the_cell = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('starts ' + month_num + ' month' ).getRange('E16');
细分:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetname = 'starts ' + month_num + ' month';
Logger.log( sheetname );
var sheet = ss.getSheetByName(sheetname);
if (!sheet) {
throw new Error( "No such sheet: "+sheetname );
}
var the_cell = sheet.getRange('E16');
字符串连接可能没有按您认为的那样进行。错误清楚地表明
getSheetByName()
的结果是null
只是为了说服自己,而不是:
var the_cell = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('starts ' + month_num + ' month' ).getRange('E16');
细分:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetname = 'starts ' + month_num + ' month';
Logger.log( sheetname );
var sheet = ss.getSheetByName(sheetname);
if (!sheet) {
throw new Error( "No such sheet: "+sheetname );
}
var the_cell = sheet.getRange('E16');
你确定没有在任何地方调用
onEdit
?@MinusFour在我的环境中onEdit()指的是此函数链接到的google电子表格的任何更改。但是,在这个环境中,我可以使用“run”按钮进行测试。我怀疑onEdit触发器是否是问题所在,因为我可以完全删除它并测试函数并获得相同的结果。在编程中,事情不会自行发生。某处正在调用onEdit()。这是一个运行时错误,因此必须有人调用它。您知道TypeError的原因吗?这是因为getSheetByName
返回null。您确定没有在任何地方调用onEdit
吗?@MinusFour在我的环境中onEdit()表示此函数链接到的google电子表格的任何更改。但是,在这个环境中,我可以使用“run”按钮进行测试。我怀疑onEdit触发器是否是问题所在,因为我可以完全删除它并测试函数并获得相同的结果。在编程中,事情不会自行发生。某处正在调用onEdit()。这是一个运行时错误,因此必须有人调用它。您知道TypeError的原因吗?这是因为getSheetByName
返回null。