0

自分の関数でinsertRows()呼び出しまたは insertRowsAfter() を使用してから、新しく作成されたセルの範囲内で getRange() 操作呼び出しを実行しようとすると、一貫した「サーバーでエラーが発生しました」で立ち往生しているようです(フォントの太さを変更したり、新しいセルに値を設定したりするなど)。

関数を呼び出すと、常に Google の「Server Encountered and Error」が表示されます。デバッグ モードで関数を呼び出すと、段階的に: エラーは発生しません!!! キャッチを行っているときに表示されるエラー ログはありません。

getRange() 操作の前に Spreadsheet.flush() 呼び出しを試みましたが、役に立ちませんでした。

  function test() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sdebtcal = ss.getSheetByName('Debt');  
    var max_rows = sdebtcal.getMaxRows(); // sheet set with only 5 rows to test
    sdebtcal.insertRowsAfter( max_rows , 20); // adding 20 rows 
    sdebtcal.getRange(max_rows+5, 1, 2, 1).setFontWeight('bold'); // trying to setFontWeight in the new range of cells
  }

空白のスプレッドシートで試してみましたが、問題はありません。現在の大きなスプレッドシートのみ。テストシートは小さいですが (2 行でテストできます!)。また、スプレッドシートの最大セル制限に達していません。

ヒントのある人はいますか?大きなスプレッドシートでのスプレッドシート スクリプト API からのバグの可能性はありますか?

よろしく、

4

1 に答える 1

0

InsertRowsBefore() と InsertRowsAfter() で経験した問題は、スクリプトの実行時にクライアント側でスプレッドシートが開かれていない場合に解消されることがわかりました。そのため、別のスプレッドシートのスクリプトまたはタイミング トリガーで行を挿入できる場合は、問題を回避できる可能性があります。幸運を!

詳細が必要な場合は、GASフォーラムで作成した投稿へのリンクを次に示します。これについてIssue 1270にコメントを追加することに興味があるかもしれません.

于 2012-05-04T09:02:15.697 に答える