Ich habe zwei Probleme.Das Meldungsfeld wird nicht angezeigt, wenn es über das Menü ausgeführt wird. Diese Funktion ist auch langsam
1) Meine Funktion noDateAlert();
ist LANGSAM. Irgendwelche Vorschläge, um es weniger als 5 Sekunden zu machen? Momentan dauert es 17-30, abhängig davon, wie viele Zeilen es überprüft werden muss.
2) Die Fehlermeldung wird nicht angezeigt, wenn ich noDateAlert();
in einer anderen Funktion aus meinem benutzerdefinierten Menü ausführen. Es funktioniert gut, wenn ich es von der Skriptseite selbst ausführe. Es funktioniert auch gut, wenn es innerhalb des anderen Programms von der Skriptseite aus ausgeführt wird.
Ich benutze dieses Programm, um mich zu warnen, wenn die 3 Zellen leer sind.
Wenn es in der anderen Funktion eingeschlossen ist, ist es das erste Ding, das aufgeführt wird.
Hier ist die Funktion:
function noDateAlert() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh0 = ss.getSheetByName("Loads");
// get data from Loads sheet
var data = sh0.getRange(8,29,53,31).getValues();
var data2 = sh0.getRange(8,3,53,3).getValues();
for(var i=0; i < 45; i++) { //Controls how many rows it goes through for posting // len = data.length; i < len
//Only work on loads currently wanting to post
if(data2[i][0] == "P-Post"){
//Warn me if all 3 cells in one row are empty/blank
if(data[i][0] == "" && data[i][1] == "" && data[i][2] == ""){
Browser.msgBox("Some of the loads you want to post are missing dates. Please check dates and run 'Post Loads' again.");
return false;
break;
};
};
};
};
Warum erhält 'data2' 3 Spalten mit Daten? Der gezeigte Code erhält nur Daten vom Index Null. Sie können das in 1 Spalte von Daten ändern, wenn das alles ist, was Sie brauchen. –
Nein Ich brauche alle 3 Spalten. Ich habe 3 Spaltendaten, also kann ich bis 3 Daten einfügen. Wenn sie alle leer sind, brauche ich eine Warnung. Wenn es einen Weg gibt, alle 3 als ein Objekt zu betrachten, das helfen könnte. – Clayten