1

Google スプレッドシートで突然次のエラーが表示されます。

error: Service invoked too many times in a short time: exec maxSimultaneous. Try Utilities.sleep(1000) between calls.

ほとんどのエラーは、vlookup を含むセルに表示されます。カスタム関数を含むほとんどのセルは正常に動作しますが、独自のカスタム関数を含むセルにいくつかのエラーが表示されます。

exec maxSimultaneous とは何か、エラーを回避する方法、および約 2 日前に 2012 年 5 月 11 日に Google のポリシーにどのような変更が加えられたのか、これが突然問題を引き起こし始めた理由はありますか?

4

2 に答える 2

1

エラーは、標準機能を持つセルに表示されているためです。これは Apps Script の問題ではなく、スプレッドシートの問題です。

しかし、問題はカスタム関数にあると確信しています。組み込み関数とは異なり、カスタム関数はすぐには一度に評価されないためです。スプレッドシートは、それぞれの実行をトリガーし、それぞれが個別に結果を返すときにトリガーします。次に、返されるたびに、スプレッドシート アプリケーションはそのセルに依存するすべての関数、つまり vlookups を再計算する必要があります。また、この動作のために、あまりにも多くの vlookups の再計算を同時にトリガーしており、このmaxSimultaneous制限に達しています。

私がお勧めするのは、Apps Script のカスタム関数の問題 (この問題をはるかに超えるもの) を説明するときに皆さんに与えるものと同じです。カスタム関数を使用しないでください。

それらが美しく、開発が簡単で、使いやすいことはわかっています。しかし、彼らには多くの問題があります。「標準」スクリプトへのアプローチを変更すると、スプレッドシートははるかに高速になります。メニューまたは画像ボタンを介して手動で、またはトリガーを介して自動的に計算をトリガーする場所onEdit

于 2012-11-08T10:39:32.343 に答える
0

提案: use Utilities.sleep(1000) - GAS 関数を何度も呼び出すと発生する傾向があります。行の高さを30行程度にしようとすると、これが得られます。ネットワーク呼び出しを行う GAS 関数が原因であると思われます。

一般的な原因は、range.getValues ではなく range.getValue を使用していることです。

また、vlookup が遅く、データベース機能が高速であることも理解しています。

于 2012-11-08T08:19:01.110 に答える