我有這樣的代碼在谷歌電子表格:奇怪的錯誤處理谷歌電子表格
//Creo degli oggetti contenenti i fogli
var ss = SpreadsheetApp.getActiveSpreadsheet();
var eu = ss.getSheetByName("EntrateUscite");
var ultimaRigaPiena = eu.getLastRow();
var primaRigaVuota = eu.getLastRow()+1;
var colTimeS =1;
var colTipo =2;
var colLav =3;
var colLavD =4;
var colInc =5;
var colIncD=6;
var colMese =7;
var colTargetMese =8;
var colGiorno=9;
var colTargetGiorno=10;
function doGet() {
return ContentService.createTextOutput('Hello, world!');
}
function entrata(){
entrataUscita("1");
}
function uscita(){
entrataUscita("0");
}
function entrataUscita(tipo) {
//Controllo se l'ultimo record è di tipo (un'entrata o un'uscita) diverso da quello corrente
if(eu.getRange(ultimaRigaPiena,colTipo).getValue()!=tipo){
//in se non lo è procedo
writeOnLastEmptyRow(colTimeS,getCurrTimeStamp());
writeOnLastRow(colTipo,tipo);
//Se il tipo è uscita allora calcolo quanto tempo è passato tra l'entrata e l'uscita con l'incrementale
if(tipo==0){
//Inserisco le ore lavorative come durata
eu.getRange(primaRigaVuota,colLav).setFormula("="+int2Let(colTimeS)+primaRigaVuota+"-"+int2Let(colTimeS)+(primaRigaVuota-1));
//Inserisco le ore lavorative come decimale
eu.getRange(primaRigaVuota,colLavD).setFormula("=TO_TEXT("+int2Let(colLav)+primaRigaVuota+")*24");
//Scrivo il mese
eu.getRange(primaRigaVuota,colMese).setFormula("=CONCATENATE(LOOKUP(MONTH("+int2Let(colTimeS)+primaRigaVuota+
");'Nomi mesi'!A1:B12);\" \";YEAR("+int2Let(colTimeS)+primaRigaVuota+"))");
//Scrivo il target mensile
eu.getRange(primaRigaVuota,colTargetMese).setFormula("=Target!E2")
//Scrivo il giorno
eu.getRange(primaRigaVuota,colGiorno).setFormula("=CONCATENATE(DAY("+int2Let(colTimeS)+primaRigaVuota+");\"/\";MONTH("+
int2Let(colTimeS)+primaRigaVuota+");\"/\";"+"YEAR("+int2Let(colTimeS)+primaRigaVuota+"))")
//Scrivo il terget giornaliero
eu.getRange(primaRigaVuota,colTargetGiorno).setFormula("=Target!C2")
//Se la cella con la quale devo fare l'addizione non è una durata
if(isValidDate(eu.getRange(primaRigaVuota-2,colInc).getValue())){
//la uso
eu.getRange(primaRigaVuota,colInc).setFormula("="+int2Let(colLav)+primaRigaVuota+"+"+int2Let(colInc)+(primaRigaVuota-2));
}else{
//altrimenti no
eu.getRange(primaRigaVuota,colInc).setFormula("="+int2Let(colLav)+primaRigaVuota);
}
//inserisco formula ore incrementeli in decimale
eu.getRange(primaRigaVuota,colIncD).setFormula("=TO_TEXT(" + int2Let(colInc)+primaRigaVuota +")*24");
}
}else{
if(tipo==1){
Browser.msgBox("Sei già dentro!");
}else{
Browser.msgBox("Sei già uscito!");
}
}
}
//Scrivo sul'ultima riga specificando la colonna ed il testo
function writeOnLastEmptyRow(column, text) {
eu.getRange(eu.getLastRow()+1,column).setValue(text);
}
//Scrivo sul'ultima riga specificando la colonna ed il testo
function writeOnLastRow(column, text) {
eu.getRange(eu.getLastRow(),column).setValue(text);
}
function getCurrTimeStamp(){
var oraCorrente = Utilities.formatDate(new Date(), "GMT+1", "dd-MM-yyyy HH.mm.ss");
return oraCorrente;
}
function isValidDate(value) {
var dateWrapper = new Date(value);
return !isNaN(dateWrapper.getDate());
}
function int2Let(n){
return String.fromCharCode(65 + n-1); // where n is 0, 1, 2 ... IL -1 SERVE PERCHE L'INDICIZZAZIONE PARTIREBBE DA 0
}
function prova(){
var prova = "sgh"
Browser.msgBox(int2Let(1))
}
我需要調用從網站的方法entrata和uscita但是當我嘗試莎爾應用程序的只有我得到的消息是:「TypeError:無法調用方法」getSheetByName「爲null。」
嘗試自己:Here
我不明白爲什麼不工作,以及如何把2鈕上的互聯網網站調用這些2種方法。
TNX
對不起,意大利語意見:P – AndreA