Ich versuche eine benutzerdefinierte Funktion in Google Tabellen auszuführen. Ich habe nicht einen Compiler-Fehler, aber wenn ich versuche, um die Funktion aufzurufen, erhalte ich eine #ERROR zusammen mit einer Nachricht,Google Scripts Fehler: "Sie sind nicht berechtigt, die Sortierung aufzurufen"
You do not have permission to call sort
Gibt es eine Möglichkeit, um dieses Problem zu bekommen? Wie kann ich einen Bereich innerhalb einer benutzerdefinierten Funktion sortieren, wenn range.sort
nicht verfügbar ist?
Hier ist mein Code:
function installmentPrice(priceRange, measuringPeriod, lowestDays, discount)
{
measuringPeriod = measuringPeriod || 5;
lowestDays = lowestDays || 1;
discount = discount || 1;
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var tempRange = sheet.getRange("C3:C9");
var newRange = tempRange.offset(0,0,measuringPeriod);
newRange.sort(newRange.getColumn());
Logger.log(newRange.getValues());
var lowestSum = 0;
var installmentPx = 0;
for (i=0; i<= lowestDays; i++) {
lowestSum = lowestSum + newRange[i];
}
lowestSum = lowestSum/lowestDays;
installmentPx = discount * lowestSum;
return installmentPx;
}
Ihr Skript funktioniert in meiner Tabelle. Haben Sie Bearbeitungszugriff auf die Tabelle? Eine Sache, die Sie vielleicht beheben möchten: die Zeile 'var sheet = SpreadsheetApp.getActiveSpreadsheet();' weist der Spalte 'sheet' ein Tabellenkalkulationsobjekt zu, was verwirrend ist (und es unklar macht, auf welchem Blatt die nachfolgenden Operationen ausgeführt werden). Es sollte wahrscheinlich 'var sheet = SpreadsheetApp.getActiveSheet();' – FTP
Versuchen Sie dies: 'sheet.getRange (" C3: C9 "). SetValues (sheet.getRange (" C3: C9 "). GetValues (). Sort ()); 'Hier gehe ich davon aus, dass Sie Werte im C3: C9-Bereich sortieren und in der Tabelle selbst anzeigen möchten. –