2017-12-13 22 views
0

すべての灰色のセルを消去するこのスクリプトがあります。私たちは毎日実行するように設定しました。しかし、このスクリプトでは、 "トップエアウエイ"シートのみがクリアされます。私は私の人生のために、余分なシートをリストに追加する方法を考え出すことはできません。コードを適切に書く方法はわかりません。単にファイル内のすべてのシートにコードを適用します。Googleシート上の複数のシートで実行するスクリプトが必要

function clearOrange() { 
    var sheet = SpreadsheetApp.getActive().getSheetByName('Top Airway'); 
    var range = sheet.getDataRange(); 
var bgColors = range.getBackgrounds(); 
    for (var i=0; i<bgColors.length; i++) { 
    for (var j=0; j<bgColors[i].length; j++) { 
     if (bgColors[i][j] === '#efefef') { 
     range.getCell(i+1,j+1).clearContent(); 
     } 
    } 
    } 
} 
+0

を動作するかどう

は、あなたの質問が正確に何と言って説明を再フォーマットすることができます参照してください。 ex: "ファイル内のすべてのシートをどのように取得しますか?" – Jon

答えて

0

基本的にスプレッドシートオブジェクトのすべてのシートを取得し、返されたシート配列をループする必要があります。これは

function clearGreyCells() { 
var r, bg; 
SpreadsheetApp.getActive().getSheets() 
    .forEach(function (s) { 
     r = s.getDataRange(); 
     bg = r.getBackgrounds(); 
     r.setValues(r.getValues() 
      .map(function (b, i) { 
       return b.map(function (c, j) { 
        return (bg[i][j] == '#efefef') ? null : c; 
       }) 
      })) 
     }) 
} 
関連する問題