私がしようとしているのは、スプレッドシートのすべての列のサイズを変更することです。これはスタンドアロンのスプレッドシートです。私が使用しています:私はそれを引き起こしているのか分からないという理由だけで、私は両方for (var i = columns; i >= 1; i--)
とfor (var i = 1; i <= columns; i++)
を試してみたautoResizeColumn()ループがGoogle Appsスクリプトをフリーズしているように見えるのはなぜですか?
function format() {
var destination = SpreadsheetApp
.openByUrl("https://docs.google.com/spreadsheets/d/spreadsheetIdHere/edit#gid=0")
.getSheetByName("sheetName");
var columns = destination.getMaxColumns();
destination.setFrozenRows(1);
destination.setFrozenColumns(3);
for (var i = columns; i >= 1; i--) {
Logger.log(i)
destination.autoResizeColumn(i);
}
}
。私は無限ループを想定していましたが、ループを完全に削除しましたが、それはあまりにも長く実行されます。
ログは、私がautoResize ...をコメントアウトして約1秒後に予想される結果を生成します。 autoResizeを戻してください。スクリプトは実行されて実行され、列も変更されません。
私はループを取り出して、autoResizeColumn(227)
に単一の数字を入れてみました。ループを戻して、私は立ち往生しています。
autoResizeColums()が遅すぎるか、何か不足していますか?
詳細情報が必要な場合はお知らせください。
を使用してユーザープロパティを書き込むのに9秒です。getMaxColumn()の代わりにgetLastColumn()を使用してみてください。 getLastColumn()はデータが格納されている最後の列のインデックスを返します。getMaxColumn()は、ユーザーが出席者表の合計列数のインデックスを示します。 標準のグーグルスプレッドシートの最大カラム数は256です。 –