Googleスプレッドシート内でカスタム関数を実行しようとしています。私は、コンパイルエラーを得ることはありませんが、私は関数を呼び出すしようとすると、私はメッセージと共に#ERRORを取得し、Google Scripts Error:「ソートを呼び出す権限がありません」
You do not have permission to call sort
は、この問題を回避する方法はありますか? range.sort
が利用できない場合、どのようにカスタム関数内の範囲をソートできますか?ここで
は私のコードです:
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;
}
スクリプトは自分のスプレッドシートで動作します。スプレッドシートへの編集権限がありますか?一つのことを修正したいかもしれません:行 'var sheet = SpreadsheetApp.getActiveSpreadsheet();'はスプレッドシートオブジェクトを変数 'sheet'に割り当てます。これは混乱します(後続の操作がどのシートで実行されるかは不明です)。これはおそらく、 'var sheet = SpreadsheetApp.getActiveSheet();' – FTP
であるべきです:これは、 'sheet.getRange(" C3:C9 ").setValues(" C3:C9 ")。getValues()。sort( )); 'ここでは、C3:C9の範囲で値をソートし、スプレッドシート自体に表示することを前提としています。 –