Googleシートに、開いたときにシートのすべてのタブのフィルタをクリア/削除するスクリプトがあります。これは、一番上の行をつかんでから削除し、フィルタなしで置き換えることで実現します。Googleシートのフィルタをクリア/削除するスクリプト
しかし、スプレッドシートは6枚のタブでスプレッドシートを処理するには多すぎるようです。実行すると、データが表示されずに2〜3タブが完全に灰色になります。灰色のセルをダブルクリックすると、「これらのセルは現在ロードされています。ロードが完了すると再試行してください」というメッセージが返されます。どれくらい待っても、データは表示されません。ページ3または4をさらにリフレッシュすると、すべてのタブに最終的にデータが表示されます。
私は、ページを更新する必要がないように、コードをクリーンアップしたり、新しいスクリプトを作りたいと思っています。私は2つのタブだけでシート上のスクリプトを使用し、それは正常に働いたので、私はそれがデータの量とは関係がないと思う。
公正な警告:私は極端な初心者ですので、コードと書式設定はかなり醜いです。ここで
は、シートのコピーへのリンクです:
そして、ここでは、スクリプトのコード(それは各タブのコードの繰り返しチャンクである)である:
function myFunction()
{
var row2 = 1 //the row with filter
var rowBefore2 = row2
var Sheet2 = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(Sheet2.getSheets()[1]);
Sheet2.insertRowBefore(row2); //inserts a line before the filter
row2++;
var Line2 = Sheet2.getRange(row2 + ":" + row2); //gets the filter line
Line2.moveTo(Sheet2.getRange(rowBefore2 + ":" + rowBefore2)); //move to
new line
Sheet2.deleteRow(row2); //deletes the filter line - this clears the
filter
var row3 = 1
var rowBefore3 = row3
var Sheet3 = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(Sheet3.getSheets()[2]);
Sheet3.insertRowBefore(row3);
row3++;
var Line3 = Sheet3.getRange(row3 + ":" + row3);
Line3.moveTo(Sheet3.getRange(rowBefore3 + ":" + rowBefore3));
Sheet3.deleteRow(row3);
var row4 = 1 //the row with filter
var rowBefore4 = row4
var Sheet4 = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(Sheet4.getSheets()[3]);
Sheet4.insertRowBefore(row4);
row4++;
var Line4 = Sheet4.getRange(row4 + ":" + row4);
Line4.moveTo(Sheet4.getRange(rowBefore4 + ":" + rowBefore4));
Sheet4.deleteRow(row4);
var row5 = 1 //the row with filter
var rowBefore5 = row5
var Sheet5 = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(Sheet5.getSheets()[4]);
Sheet5.insertRowBefore(row5);
row5++;
var Line5 = Sheet5.getRange(row5 + ":" + row5);
Line5.moveTo(Sheet5.getRange(rowBefore5 + ":" + rowBefore5));
Sheet5.deleteRow(row5);
var row6 = 1
var rowBefore6 = row6
var Sheet6 = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(Sheet6.getSheets()[5]);
Sheet6.insertRowBefore(row6);
row6++;
var Line6 = Sheet6.getRange(row6 + ":" + row6);
Line6.moveTo(Sheet6.getRange(rowBefore6 + ":" + rowBefore6));
Sheet6.deleteRow(row6);
var row7 = 1
var rowBefore7 = row7
var Sheet7 = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(Sheet7.getSheets()[6]);
Sheet7.insertRowBefore(row7);
row7++;
var Line7 = Sheet7.getRange(row7 + ":" + row7);
Line7.moveTo(Sheet7.getRange(rowBefore7 + ":" + rowBefore7));
Sheet7.deleteRow(row7);
}
削除する代わりに、このスレッドの最後の回答を見てください - > http://stackoverflow.com/questions/26807618/how-can-i-remove-all-filters-in-a- google-spreadsheet-using-google-apps-script – Rodger