2017-05-11 12 views
0

毎週更新されるGoogleスプレッドシートがあります。それは週ごとに異なる名前を持つ複数のシートを含んでいます。Googleスプレッドシート - 外部スプレッドシート全体を現在のスプレッドシートにコピー

Googleスプレッドシートから別のスプレッドシートにすべてのシートをコピーする方法はありますか?私の主な目標は、スプレッドシート全体をコピーし、スクリプトを実行するワークシートにソースシートのすべてのシートとデータを持たせることです。また、このコピープロセスがデータをコピーしただけで、他のシートからの式をコピーしていない場合は、素晴らしいことです。

ありがとうございました!

エリック

+0

こんにちはエリック。すでに書いたコードのサンプルをいくつか紹介していただけますか? –

答えて

1

私は元シートから実行するためにこれを書いたが、簡単に他の方法でラウンドを実行するように適合させることができます。これは数式ではなくセルの値のみを取得し、現在は日付が付加された新しいスプレッドシートを作成します。

function copyEntireSpreadsheet(){ 
    var ss,ssName,sheet,sheetName,data,destination 
    ss = SpreadsheetApp.getActiveSpreadsheet().getSheets(); 
    ssName = SpreadsheetApp.getActive().getName(); 
    destination = SpreadsheetApp.create(ssName + " - " + new Date().toLocaleString()); 
    for (var i = 0; i < ss.length; i++){ 
    sheet = ss[i]; 
    sheetName = sheet.getSheetName(); 
    data = sheet.getSheetValues(1, 1, sheet.getLastRow(), sheet.getLastColumn()); 
    destination.insertSheet(sheetName) 
    destination.getSheets()[i].getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn()).setValues(data); 
    } 
} 

それがループ内でシートを挿入するので、スクリプトの実行の終わりに1枚のブランクシートを取得しますが、関数が終了する前に、これは、手動またはループの終了時に削除することができます。

関連する問題