すべての部品表で構成される Google スプレッドシートを「共有」しています。所有者だけがアクセスできるように、別のスプレッドシートの「マスター」を保持したい。共有スプレッドシートに挿入されたデータはマスター スプレッドシートに反映されるはずですが、共有スプレッドシートを編集してもマスター スプレッドシートには反映されません。
どんな助けでも大歓迎です。
すべての部品表で構成される Google スプレッドシートを「共有」しています。所有者だけがアクセスできるように、別のスプレッドシートの「マスター」を保持したい。共有スプレッドシートに挿入されたデータはマスター スプレッドシートに反映されるはずですが、共有スプレッドシートを編集してもマスター スプレッドシートには反映されません。
どんな助けでも大歓迎です。
Google スプレッドシートにはスクリプト機能があります。また、公開ギャラリー スクリプトもあります。
画像 http://img593.imageshack.us/img593/5410/screenshot20110720at736.png
公開スクリプトの 1 つがedit to another spreadsheet
別のスプレッドシートに編集する 現在のスプレッドシートの変更を別のスプレッドシートで更新する ticcaje (で) gmail.com
画像 http://img97.imageshack.us/img97/240/picture1nns.png
残念ながら、しばらく更新されていません。コードを見た後、ダイアログ メッセージと return ステートメントがあるため、実際には完了していないと思います。
画像 http://img718.imageshack.us/img718/5264/pictureja.png
これは非常に便利なスクリプトになると思いますので、少し編集しましたが、実際にはコメントはありません。今は 100% 動作させる時間はありませんが、誰かが実際にそれを手に取って実行できることを期待して、ここに投稿します。
関数 onEdit(){ var sourceSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var targetSpreadsheet = SpreadsheetApp.openById('0AntUWac3dtkUac3dtnhTjMwac3dtVjBiac3dtOXcac3dt'); // ここにスプレッドシート キーを入力します var sourcesSheet = sourceSpreadsheet.getSheets()[0]; var targetSheet = targetSpreadsheet.getSheets()[0]; var currentSourceCellIndex = SpreadsheetApp.getActiveRange().getRow(); //ActiveCell().getValues(); var selectedCell = SpreadsheetApp.getActiveSpreadsheet().getActiveSelection().getA1Notation(); var targetRowsCount = targetSheet.getLastRow(); var targetColumns = sourcesSheet.getLastColumn(); var targetRange = targetSheet.getRange(1, 1, targetRowsCount, targetColumns); var targetSources = targetRange.getValues(); var sourceRows = sourcesSheet.getLastRow(); var sourceColumns = sourcesSheet.getLastColumn(); var sourcesRange = sourcesSheet.getRange(1, 1, sourceRows, sourceColumns); var ソース = sourcesRange.getValues(); var compareName = sources[currentSourceCellIndex-1][0]; 戻る; //Browser.msgBox("currentSourceCell: "+sources[currentSourceCellIndex-1][0]);return; // アクティブセル() //Browser.msgBox("currentSourceCell: "+targetRowsCount); // 戻る; for (var i = 1; i < targetRowsCount; ++i) { if (targetSources[i-1][0] == compareName){ targetSheet.deleteRow(i); 壊す; } } // var sourceRows = sourcesSheet.getLastRow(); // var sourceColumns = sourcesSheet.getLastColumn(); // var sourcesRange = sourcesSheet.getRange(1, 1, sourceRows, sourceColumns); // var sources = sourcesRange.getValues(); //if ((sources[sourceRows-1][0] == "")||(sources[sourceRows-1][1] == "") ||(sources[sourceRows-1][2] == "") || (sources[sourceRows-1][3] == "") || (sources[sourceRows-1][4] == "") || (sources[sourceRows-1][5] = = "")) //戻る; //currentSourceCell = sourceSheet.getActiveCell(); rowToInsert = targetSheet.getLastRow(); targetSheet.insertRowAfter(rowToInsert); var insertRange = targetSheet.getRange(rowToInsert + 1, 1, 1, targetSheet.getLastColumn()); var コロンネン = []; var tbText = []; for (var i = 1; i < 16; ++i) { コロネン.プッシュ(i); tbText.push(sources[sourceRows-1][i-1]); } //Browser.msgBox("ソース: "+tbText);return; for (j = 0; j < kolonnen.length; j++) { var zellRange = targetSheet.getRange(rowToInsert+1, コロンネン[j], 1, 1); zellRange.setValue(tbText[j]); } }
スクリプトを編集することで元のコードにアクセスできますが、必要に応じて、ここにも投稿します。
関数 onEdito() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var menuEntries = [ { 名前:「行く」、 関数名: "挿入行" } // 、 // { // name: "ビルド ジャーナル", // 関数名: "collectJournal" // } ]; ss.addMenu("pastePlus", menuEntries); } 関数 onEdit(){ var sourceSpreadsheetName = Browser.inputBox("ソース スプレッドシート"); //var sourceSpreadsheetName = SpreadsheetApp.getActiveSpreadsheet().getName(); var files = DocsList.getFilesByType("スプレッドシート"); //var ファイル = SpreadsheetApp; Browser.msgBox("currentSourceCell: " +ファイル); //var sourceSpreadsheet; for (var i = 0; i < files.length; ++i) { var ファイル名 = ファイル [i].getName(); if (ファイル名 == sourceSpreadsheetName) { var sourceSpreadsheet = SpreadsheetApp.openById(files[i].getId()); var シート = sourceSpreadsheet.getSheets(); var sourcesSheet = シート[1]; 壊す; } } var targetSpreadsheetName = "Probando スクリプト"; //DocsList.getFilesByType("スプレッドシート"); //var targetSpreadsheet; for (var i = 0; i < files.length; ++i) { var ファイル名 = ファイル [i].getName(); if (ファイル名 == targetSpreadsheetName) { var targetSpreadsheet = SpreadsheetApp.openById(files[i].getId()); var シート = targetSpreadsheet.getSheets(); var targetSheet = シート[1]; 壊す; } } var currentSourceCellIndex = SpreadsheetApp.getActiveRange().getRow(); //ActiveCell().getValues(); var selectedCell = SpreadsheetApp.getActiveSpreadsheet().getActiveSelection().getA1Notation(); var targetRowsCount = targetSheet.getLastRow(); var targetColumns = sourcesSheet.getLastColumn(); var targetRange = targetSheet.getRange(1, 1, targetRowsCount, targetColumns); var targetSources = targetRange.getValues(); var sourceRows = sourcesSheet.getLastRow(); var sourceColumns = sourcesSheet.getLastColumn(); var sourcesRange = sourcesSheet.getRange(1, 1, sourceRows, sourceColumns); var ソース = sourcesRange.getValues(); var compareName = sources[currentSourceCellIndex-1][0]; //Browser.msgBox("currentSourceCell: "+sources[currentSourceCellIndex-1][0]);return; Browser.msgBox("currentSourceCell:"+targetRowsCount);return; for (var i = 1; i < targetRowsCount; ++i) { if (targetSources[i-1][0] == compareName){ targetSheet.deleteRow(i); 壊す; } } var sourceRows = sourcesSheet.getLastRow(); var sourceColumns = sourcesSheet.getLastColumn(); var sourcesRange = sourcesSheet.getRange(1, 1, sourceRows, sourceColumns); var ソース = sourcesRange.getValues(); //if ((sources[sourceRows-1][0] == "")||(sources[sourceRows-1][1] == "") ||(sources[sourceRows-1][2] == "") || (sources[sourceRows-1][3] == "") || (sources[sourceRows-1][4] == "") || (sources[sourceRows-1][5] = = "")) //戻る; //currentSourceCell = sourceSheet.getActiveCell(); rowToInsert = targetSheet.getLastRow(); targetSheet.insertRowAfter(rowToInsert); var insertRange = targetSheet.getRange(rowToInsert + 1, 1, 1, targetSheet.getLastColumn()); var コロンネン = []; var tbText = []; for (var i = 1; i < 16; ++i) { コロネン.プッシュ(i); tbText.push(sources[sourceRows-1][i-1]); } //Browser.msgBox("ソース: "+tbText);return; for (j = 0; j < kolonnen.length; j++) { var zellRange = targetSheet.getRange(rowToInsert+1, コロンネン[j], 1, 1); zellRange.setValue(tbText[j]); } }
「変更」の意味にもよりますが=Master!A1
、スレーブ シートのセル A1 に配置し、右下隅を完全に下にドラッグしてから、その選択範囲の右下隅を完全にドラッグすることができます。したがって、セル D8 には=Master!D8
などが含まれます。