2017-01-24 7 views
0

初めてGoogle Appsスクリプトを使用しています。私は変わった時にいくつかのスクリプトを実行する同僚(私たちともう働かない)からGoogleシート(テンプレート)を継承しました。私が読んだものからのスクリプトは、というスクリプトをバインドしてください。バインドされたアプリスクリプトと複数のプロジェクト

スクリプトエディタを開いても、2つのプロジェクトが表示されます。 1つはプロジェクトの以前のバージョンのコピーです。それぞれにはonOpen()関数があります。私の質問は、どのシートを呼び出すべきかをシートがどのように知っているかです。

ビヘイビアを複製するには、自分でシートを作成してから、スクリプトエディタを使用して、それぞれにonOpen関数を使用して2つのプロジェクトを作成します。この関数は、シートを開く際にいくつかのメニューを追加します。 メニュー名が異なるため、両方の機能が起動されていることがわかります。しかし、問題の元のテンプレートでは、2つのスクリプトのうち1つのみを呼び出すような動作はしません。

トリガーなどが存在するかどうかを確認しましたが、存在しないようです。私はこのことについて書かれていない。

+0

バウンドスクリプトの動作を完全に理解するには、[Googleブック、ドキュメント、またはフォームにバインドされたスクリプト](https://developers.google.com/apps-script/guides/bound)をチェックしてください。また、特殊なメソッド、カスタムメニュー、ダイアログ、サイドバーの使用についていくつかの情報を提供します。また、単純なトリガーまたはインストール可能なトリガーの使用についても触れました。 – Teyam

答えて

0

テストではonOpen(e)の両方が呼び出されているため、両方ともシートにバインドされています。どのスクリプトが最後に編集されたのか、またはいくつかの詳細を知るためにできることは、各スクリプトファイルの改訂履歴を確認することです(改訂履歴を参照)。

私は彼が私が両方開く時の機能が実際に発射されたことを述べたようにそれが判明手

0

によってそれらのいずれかをdisaledんだろうように、最後の開発者がコードをコメントしなかった把握。スクリプトとそれに含まれるコードの両方が同じであったが、最終効果はシート上で同じだった。かなり変だ。

プロジェクトの1つを削除して1つだけ残すようにシートのコピーを作成して修正しました。私は元のシートを削除し、私のコピーを公式のものにしました(同じ名前)。

特定のシート上の関数に対して明示的なトリガーを強制することによって、アプリスクリプトがそれを明白にすることを選択した場合、私はそれを優先していました。

関連する問題