1

Google スプレッドシート内でカスタム関数を実行しようとしています。コンパイル エラーは発生しませんが、関数を呼び出そうとすると、メッセージと共に #ERROR が発生します。

並べ替えを呼び出す権限がありません

この問題を回避する方法はありますか? 利用できない場合、カスタム関数内で範囲をソートするにはどうすればよい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;

}
4

1 に答える 1

1

ドキュメントで指定されているとおり:

カスタム関数は、値を返すセル以外のセルに影響を与えることはできません。つまり、カスタム関数は任意のセルを編集できず、呼び出し元のセルとその隣接セルのみを編集できます。任意のセルを編集するには、代わりにカスタム メニューを使用して関数を実行します。

関数は、元のセルとは異なる範囲を変更しようとします。これにより、newRangeオブジェクトで発生するエラーが説明されます

于 2017-01-03T10:29:26.453 に答える