2017-01-03 8 views
0

Googleのシートを使ってループを繰り返しています。Googleシート - ループスルーシートを使用したデータの統合

シナリオ - 私は同じレイアウトで約20個のタブを持っています。それらのすべてから情報を収集し、1枚のマスターシートに配置する必要があります。 データは2行目(ヘッダー)から始まり、可変長にすることができます(必要な場合は列「Z」)。

コードはすべてのデータを配置するための新しいタブを作成するか、タブ。それは場合は、単純な タブ を通じて(概要と呼ばれる)新しいタブ ループを作成だろうExcelで

-

(私はこれらを定義することができ、私はいくつかのシートを含めないようにする必要があります考慮に入れる必要がある場合があります)タブ名が私の例外リストにない行ってまで、任意のヘルプは、ケースanyoで

答えて

0

を高く評価し

[概要]タブ 繰り返したシート上の範囲(ダイナミックレンジ)使用可能な次の行に 置き範囲をコピーしますNE他

function LoopSheetsMergeData(){ 
var ss = SpreadsheetApp.getActive(); 
var allsheets = ss.getSheets(); 
var destsheet = ss.getSheetByName("Summary");//MasterSheet To Merge To 
var StartRow = 4//StartRow on all tabs 
var StartCol = 1//AllData starts in Column 1 
var EndCol = 26//End Column of all data 
for (var s in allsheets){ 
    var sheet=allsheets[s] 
    if (sheet.getName() == "Summary") //Disregard certain tabs 
    {  
    } 
    else 
    {  
var EndRow = sheet.getLastRow(); 
var copyRng = sheet.getRange(StartRow,StartCol,EndRow,EndCol); 
var destlastRow = destsheet.getLastRow(); 
var nextRow = destlastRow +1 
var shtname = sheet.getName(); 
copyRng.copyTo(destsheet.getRange(nextRow,2));//Row and Column of where to paste the information 
var newLastRow = destsheet.getLastRow();//New last Row after pasting the data 
destsheet.getRange(nextRow,1,newLastRow,1).setValue(shtname&&newLastRow);//Insert into column 1 for each row copied the name of the sheet it came from  
    } 
    }//end of sheets loop. 
}// end of function... 

私は自分自身からいくつかのコードを動作するように管理し、同様の問題がある(最速ではないかもしれませんが、それは仕事をしていません)
関連する問題