すべてのシートを同じGoogleスプレッドシートに同期する必要があります。 最初の行と最初の列(凍結されている)だけを同期し、残りの内容は同期させないでください。同じGoogleスプレッドシートファイルの最初の列と1行のシートを同期させる
また、シートに行を挿入/削除する場合、他のすべての同期シートに対しても同じ操作が実行されるようにしたいと思います。また、他の修正が行われた場合、例えば、行が凍結されている場合は、すべてのシートで同じ行を実行する必要があります。
私はこれらの質問にコードを見てきました:要するに
- How to sync two sheets with =importrange() in two googlespreadsheet?
- Is there a way to keep two sheets synchronized?
を、私は「マスター」シートのフォームを使用できるようにしたい、といくつかを持っています異なる値を持つシート。私はマスターへの変更が適用され、シートの変更はマスターの変更を反映する必要があります。双方向の同期は素晴らしいですが、厳しい要件ではありません。
は、これまでのところ、私はこれを鎮圧するために管理している:
var masterSheetN = 2; /*2 means the master sheet is the second sheet. Sheets before the master sheet are ignored*/
function importData() {
/*Input sheet*/
var fromSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var fromSheets = fromSpreadsheet.getSheets();
var fromWorksheet = fromSheets[masterSheetN-1];
var fromData = fromWorksheet.getDataRange();
var fromRowsN = fromData.getNumRows()
var fromColsN = fromData.getNumColumns()
var fromRow1 = fromWorksheet.getRange(1, 1, 1, fromColsN);
var fromCol1 = fromWorksheet.getRange(1, 1, fromRowsN);
for (i=masterSheetN; i<fromSheets.length; i++) {
/*Output sheet*/
var toWorksheet = fromSheets[i];
var toRow1 = toWorksheet.getRange(1, 1, 1, fromColsN);
var toCol1 = toWorksheet.getRange(1, 1, fromRowsN);
/*Sync row and col 1*/
toRow1.setValues(fromRow1.getValues());
toCol1.setValues(fromCol1.getValues());
/*Sync format for the whole sheet*/
var toGID = toRow1.getGridId()
fromData.copyFormatToRange(toGID, 1, fromColsN, 1, fromRowsN)
}
}
は、これが成功したフォーマットにも、最初の行と列のためのマスターシートにすべてのシートを同期、および。しかし、フォーマットが同期されていると(特に、最初の行/列の同期がはるかに速い)、同期/保護された行などの同期がとれない場合は非常に遅いです。マスターからすべてを同期する方法はありますか新しいシートが作成されたときのシート?
も参照してくださいは、同期一方向または双方向ですか?何人の人が編集できますか? 2番目のリンク先の[この提案された回答](http://stackoverflow.com/a/20461897/2278429)に、これを効果的に設定する方法に関するガイダンスがあります。 – Brian
@Rubénこんにちは、私は明日の質問を編集します。はい、私は数式を使うことができますが、それは内容だけをコピーします。私が望むのは、マスターフォームが各シートに似た異なるデータで埋められることです。つまり、「マスターシート」の(たとえば)条件付き書式を変更すると、すべてのシート全体で変更する必要があります。これが可能かどうかはわかりません。 – AF7
importrange()は書式設定ではなく、データのみを表示します。これは、1つのファイルから2つ目のファイルにデータを移動するために使用されます。 file_keyは、URLの長い文字列です(スラッシュから別のスラッシュへ)。docs.google.com/spreadsheets/d/___file_key_is_here ___/edit#gid = 0範囲を開くことができます。以下は、列AとB '= IMPORTRANGE(file_key、" sheet1!A1:B ")のすべての項目を取り込みます。メインシートでのみこの部分を編集することができます。他のシートが最初のデータに対してのみ機能を使用している場合を除いて、行を挿入してください。 –