Google 스프레드 시트는 모든 BOM으로 구성되며 "공유"됩니다. 소유자 만 액세스 할 수 있도록 다른 스프레드 시트 "마스터"를 유지하고 싶습니다. 공유 스프레드 시트에 삽입 된 모든 데이터는 마스터 스프레드 시트에 반영되어야하지만 공유 스프레드 시트를 수정하면 마스터 스프레드 시트에 반영되어서는 안됩니다.하나의 스프레드 시트에서 변경 한 내용이 다른 스프레드 시트에 반영되어야합니다.
도움을 주시면 감사하겠습니다.
Google 스프레드 시트는 모든 BOM으로 구성되며 "공유"됩니다. 소유자 만 액세스 할 수 있도록 다른 스프레드 시트 "마스터"를 유지하고 싶습니다. 공유 스프레드 시트에 삽입 된 모든 데이터는 마스터 스프레드 시트에 반영되어야하지만 공유 스프레드 시트를 수정하면 마스터 스프레드 시트에 반영되어서는 안됩니다.하나의 스프레드 시트에서 변경 한 내용이 다른 스프레드 시트에 반영되어야합니다.
도움을 주시면 감사하겠습니다.
"변경 사항"의 의미에 따라 다르지만 =Master!A1
을 슬레이브 시트의 A1 셀에 넣은 다음 오른쪽 하단 모서리를 끝까지 아래로 드래그 한 다음 해당 선택 항목의 오른쪽 하단 모서리를 모두 드래그하십시오 길 건너편. 셀 D8에는 =Master!D8
등이 있습니다.
Google 스프레드 시트에는 스크립팅 기능이 있습니다. 또한 공개 갤러리 스크립트도 있습니다. 공공 스크립트의
image http://img593.imageshack.us/img593/5410/screenshot20110720at736.png
하나는 불행하게도이 시간에 업데이트되지 않은 edit to another spreadsheet
edit to another spreadsheet update in another spreadsheet the changes in the current one ticcaje (at) gmail.com
image http://img97.imageshack.us/img97/240/picture1nns.png
, 그리고 코드보고 후 나는 그것을 생각하지 않는다 대화 메시지가 있고 return 문이 있기 때문에 실제로 완료되었습니다.
image http://img718.imageshack.us/img718/5264/pictureja.png
나는 이것이 정말 유용한 스크립트가 될 수 있다고 생각하고 그래서 나는 그것으로 약간의 편집을 완료했지만, 실제로 거기에 댓글이 없습니다, 나는 그것을 얻을 수있는 시간이 없어 지금 당장 100 % 일하고 있지만 누군가가 실제로 그것을 집어 들고 달릴 수 있기를 희망합니다.function onEdit(){ var sourceSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var targetSpreadsheet = SpreadsheetApp.openById('0AntUWac3dtkUac3dtnhTjMwac3dtVjBiac3dtOXcac3dt'); //put in your spreadsheet key here 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 sources = sourcesRange.getValues(); var compareName = sources[currentSourceCellIndex-1][0]; return; //Browser.msgBox("currentSourceCell: "+sources[currentSourceCellIndex-1][0]);return; // ActiveCell() //Browser.msgBox("currentSourceCell: "+targetRowsCount); // return; for (var i = 1; i < targetRowsCount; ++i) { if (targetSources[i-1][0] == compareName){ targetSheet.deleteRow(i); break; } } // 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] == "")) //return; //currentSourceCell = sourceSheet.getActiveCell(); rowToInsert = targetSheet.getLastRow(); targetSheet.insertRowAfter(rowToInsert); var insertRange = targetSheet.getRange(rowToInsert + 1, 1, 1, targetSheet.getLastColumn()); var kolonnen = []; var tbText = []; for (var i = 1; i < 16; ++i) { kolonnen.push(i); tbText.push(sources[sourceRows-1][i-1]); } //Browser.msgBox("source is: "+tbText);return; for (j = 0; j < kolonnen.length; j++) { var zellRange = targetSheet.getRange(rowToInsert+1, kolonnen[j], 1, 1); zellRange.setValue(tbText[j]); } }
원래 코드
스크립트를 편집하여 액세스 할 수 있지만, 당신이 그것을 원한다면 난 그냥 가서거야 너무, 여기에 게시 :function onEdito() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var menuEntries = [ { name: "go", functionName: "insertRow" } // , // { // name: "Build Journal", // functionName: "collectJournal" // } ]; ss.addMenu("pastePlus", menuEntries); } function onEdit(){ var sourceSpreadsheetName = Browser.inputBox("source spreadsheet"); //var sourceSpreadsheetName = SpreadsheetApp.getActiveSpreadsheet().getName(); var files = DocsList.getFilesByType("spreadsheet"); //var files = SpreadsheetApp; Browser.msgBox("currentSourceCell: " +files); //var sourceSpreadsheet; for (var i = 0; i < files.length; ++i) { var filename = files[i].getName(); if (filename == sourceSpreadsheetName) { var sourceSpreadsheet = SpreadsheetApp.openById(files[i].getId()); var sheets = sourceSpreadsheet.getSheets(); var sourcesSheet = sheets[1]; break; } } var targetSpreadsheetName = "Probando Script"; //DocsList.getFilesByType("spreadsheet"); //var targetSpreadsheet; for (var i = 0; i < files.length; ++i) { var filename = files[i].getName(); if (filename == targetSpreadsheetName) { var targetSpreadsheet = SpreadsheetApp.openById(files[i].getId()); var sheets = targetSpreadsheet.getSheets(); var targetSheet = sheets[1]; break; } } 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 sources = 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); break; } } 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] == "")) //return; //currentSourceCell = sourceSheet.getActiveCell(); rowToInsert = targetSheet.getLastRow(); targetSheet.insertRowAfter(rowToInsert); var insertRange = targetSheet.getRange(rowToInsert + 1, 1, 1, targetSheet.getLastColumn()); var kolonnen = []; var tbText = []; for (var i = 1; i < 16; ++i) { kolonnen.push(i); tbText.push(sources[sourceRows-1][i-1]); } //Browser.msgBox("source is: "+tbText);return; for (j = 0; j < kolonnen.length; j++) { var zellRange = targetSheet.getRange(rowToInsert+1, kolonnen[j], 1, 1); zellRange.setValue(tbText[j]); } }
덕분에 당신의 interest.I가 가질 수에 대한 importrange 또는 importdata 수식을 사용했지만 공유 스프레드 시트를 편집하는 경우 마스터에서 변경되고 있습니다. 원하지 않는 부분이 있습니다. 새로 추가 된 데이터 만 공유하면 편집 된 마스터가 아닌 마스터 링됩니다. 지금 내 포인트가 있습니다. – Ani
알았어. 나는이 일을 할 수있는 방법을 모른다. 나는 누군가가 나를 바로 잡을지라도 그것을 끝낼 수 없다는 유혹을 받는다. –
희망이 있습니다. 스프레드 시트를 복사하여 마스터로 사용하는 경우 유용합니다. 스프레드 시트를 복제하는 데는 그다지 목적이 없습니다. – Ani