2

Google Apps Script (具体的には一連のスプレッドシート) で一連のスクリプトを作成してから 1 か月以上経ちましたが、SpreadsheetApp.getActiveSheet().

自分のコードに依存しないテスト関数を作成するまで、どこかで自分の関数の 1 つで何かを捨てたと思いました。

function basicFunctionality() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange('b2');
  var vals = range.getValues();
  Browser.msgBox(vals[0][0]);
}

この関数を実行すると、このエラーが返されます...

Unknown sheet name (line 5)

getActiveSpreadsheet()...これは、「getValues」行の問題を暗示しているように見えますが、 (たとえばgetSheetByName()、 )以外の方法でシートにアクセスするgetSheets()[0]と、関数が最後まで実行され、期待される結果が返されます。

今でも、これは私のコード ファイルの問題であり、Google のバグではないと想定していますが、アイデアが尽きてしまいました。すべてのスクリプト ファイルを新しいスプレッドシート ドキュメント/プロジェクトにコピーしようとさえしました。このテスト機能は、移植する唯一のものである場合に機能しますが、プロジェクトの残りの部分がそこに入ると、問題が再び発生します (私は他のすべてのファイルを完全にコメントアウトしていますが、これは最も奇妙な部分です)。

考えられる「壊れた」方法はありますgetActiveSheet()か?それとも私は問題を誤解していますか?

洞察を事前にありがとう!

4

1 に答える 1

0

あなたのコードは私にとってはうまくいきます。スプレッドシートにドロップした図面に関数を添付して実行すると、そのシートのセル B2 からデータが返されました。

もう一度試して、まだ壊れているかどうかを確認していただけますか?

GAS がアクティブなシートを認識していないコンテキストでスクリプトが実行されている可能性はありますか? デバッガーでコードを実行すると、最後に入力されたシートに関係なく、最初のシートがアクティブなシートとして選択されたように見えました。

于 2012-07-14T18:32:40.273 に答える