2016-06-27 12 views
0

私は過去数週間を探していて、このスクリプトを理解できませんでした。私がしようとしていることは、マスターのGoogleスプレッドシート上の絵のカレンダーを、管理している別のGoogleスプレッドシートに複製する方法を見つけ出すことです。マスターカレンダーの更新があるたびに、管理している他のGoogleスプレッドシートファイルで自動的に更新されることを願っています。今は、すべてを貼り付けてコピーし、再フォーマットし、イメージを再インポートする必要があります。私は多少は機能するスクリプトを見つけましたが、それはそれが同様に多くの仕事になるいくつかの問題があります。Googleスプレッドシート、コピーして既存のシートをコピーして置き換えます

スクリプトはcopyToスクリプトで、マスターのGoogleスプレッドシートファイル(「マスターカレンダー」)から「Googleカレンダー」と呼ばれる別のGoogleスプレッドシートファイルに「図形カレンダー」という名前のシートをコピーすることができます。私は編集を行うたびにスクリプトを実行できるトリガーを設定しています。

しかし、「絵のカレンダー1のコピー」「絵のカレンダー2のコピー」などという名前の新しいシートを作成し続け、新しいシートを作成する代わりに既存のシートを置換する方法を理解できません。

「マイカレンダー」ファイルの「絵のカレンダー」と呼ばれるように、コピーしたシートを変更することもできます。私が使用しているスクリプトは次のとおりです:

function copyMasterCalendar() { 
var source = SpreadsheetApp.getActiveSpreadsheet(); 

var sheet = source.getSheets()[2]; 

var destination = SpreadsheetApp.openById("1exiUWVypFpYeHMkXHO3sMUTGupiC2gQjZIF0Ss44-pU"); 

sheet.copyTo(destination); 
} 

何かすべてのヘルプは大歓迎です!ありがとうございました!

答えて

0

私はあなたが正しく

function copyMasterCalendar() { 
    var source = SpreadsheetApp.getActiveSpreadsheet(), 
     sheet = source.getSheetByName('Pictorial Calendar'), 
     destination = SpreadsheetApp.openById("1exiUWVypFpYeHMkXHO3sMUTGupiC2gQjZIF0Ss44-pU"), 
     destSheet = destination.getSheetByName('Pictorial Calendar'), 
     copydSheet = sheet.copyTo(destination); 
    copydSheet.getDataRange().copyTo(destSheet.getDataRange()); 
    destination.deleteSheet(copydSheet); 
} 
+0

...これを試して理解している場合、私はあなたが正しく私を理解し考えて、そのスクリプトは、ほぼ正常に動作します。書式設定や、元のシートにあるイメージはインポートされません(最初にリストしたcopyToスクリプト)。私はそれを理解しようと数時間を費やしましたが、成功しませんでした。書式や画像をインポートすることも可能ですか?私は本当にあなたのスクリプトが重複したシートを作成しないで、既存のものを上書きするのが好きです。 – Marc

+0

最後の2行の削除を、destination.deleteSheet(destSheet); '&' copydSheet.setName( 'Pictorial Calendar'); 'に変更するのはどうですか?基本的に元のシートを削除し、コピーの名前を変更します。 – mongoose36

+0

ありがとうございました!最後の編集は、スクリプトが完璧に実行されるようにします。これは素晴らしいことです!あなたは本当に時間を節約し、多くの頭痛に感謝しました、もう一度@ mongoose36! – Marc

関連する問題