我有一个像这样的简单脚本
function importazione() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const wsd = ss.getSheetByName("morosi");
wsd.getRange(2,1,1000,10).clearContent();
SpreadsheetApp.flush();
const ws = ss.getSheetByName("importa");
const max_riga = ws.getLastRow();
var dati = ws.getRange(2, 1, max_riga-1, 6).getValues();
dati.forEach(r => {
scriviElenco({
corso: r[0],
ciclo: r[1],
studente: r[2],
status: r[4],
id_matr: r[5]
});
});
}
function scriviElenco(passa) {
if (passa.status === "NO PAGÓ") {
var daSplittare = passa.corso+"|"+passa.studente+"|"+passa.id_matr;
var riga = [];
riga = daSplittare.split("|");
wsd.appendRow(riga);
};
}
在最后一行返回这个错误:
ReferenceError: wsd is not defined
我不明白为什么没有定义wsd常数,我有更复杂的脚本,我使用相同的定义,它的工作原理。有人能帮我理解一下吗?
我不明白为什么没有定义wsd常数
wsd
不在您的第二个功能scriviElenco()
范围内;它只在importazione()
范围内-因为Javascriptconst
定义具有块范围。这实际上是有意义的,因为wsd
只在执行importazione()
时设置,并且不能期望它在第二个函数中具有有效值。因此,您可能需要这样写:
function scriviElenco(passa) {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const wsd = ss.getSheetByName("morosi");
// your existing implementation
}
,甚至可能是一行帮助函数,如:
function getSheet(sheetName) {
return SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
}
,在两个函数的开头赋值给一个常量。