我有一个“共享”的谷歌电子表格,其中包含所有材料清单。我想保留另一个电子表格“主”,这样只有所有者才能访问它。插入共享电子表格中的任何数据都应反映在主电子表格中,但如果我们编辑共享电子表格,则不应反映在主电子表格中。
任何帮助,将不胜感激。
我有一个“共享”的谷歌电子表格,其中包含所有材料清单。我想保留另一个电子表格“主”,这样只有所有者才能访问它。插入共享电子表格中的任何数据都应反映在主电子表格中,但如果我们编辑共享电子表格,则不应反映在主电子表格中。
任何帮助,将不胜感激。
好吧,这取决于您所说的“更改”是什么意思,但是您可以放入=Master!A1从属表的单元格 A1,然后一直向下拖动右下角,然后一直拖动该选择的右下角。因此单元格 D8 将具有=Master!D8,依此类推。
Google 电子表格确实具有脚本功能。它还有一个公共画廊脚本。
图片 http://img593.imageshack.us/img593/5410/screenshot20110720at736.png
公共脚本之一是edit to another spreadsheet
编辑到另一个电子表格 在另一个电子表格中更新当前电子表格中的更改 ticcaje (at) gmail.com
图片 http://img97.imageshack.us/img97/240/picture1nns.png
不幸的是,它已经有一段时间没有更新了,在查看了代码之后,我认为它实际上并没有完成,因为有一个对话框消息,然后是一个返回语句。
图片 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 = 来源[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 kolonnen = [];
var tbText = [];
for (var i = 1; i < 16; ++i) {
kolonnen.push(i);
tbText.push(来源[sourceRows-1][i-1]);
}
//Browser.msgBox("来源是:"+tbText);return;
对于 (j = 0; j < kolonnen.length; j++) {
var zellRange = targetSheet.getRange(rowToInsert+1, kolonnen[j], 1, 1);
zellRange.setValue(tbText[j]);
}
}
可以通过编辑脚本来访问原始代码,但如果你想要它,我也会继续在这里发布它:
函数 onEdito() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [ {
名称:“去”,
函数名称:“插入行”
}
// ,
// {
// name: "构建日志",
// functionName: "collectJournal"
// }
];
ss.addMenu("pastePlus", menuEntries);
}
函数 onEdit(){
var sourceSpreadsheetName = Browser.inputBox("源电子表格");
//var sourceSpreadsheetName = SpreadsheetApp.getActiveSpreadsheet().getName();
var files = DocsList.getFilesByType("电子表格");
//var 文件 = SpreadsheetApp;
Browser.msgBox("currentSourceCell:" +files);
//var sourceSpreadsheet;
for (var i = 0; i < files.length; ++i) {
var 文件名 = 文件[i].getName();
if (filename == sourceSpreadsheetName) {
var sourceSpreadsheet = SpreadsheetApp.openById(files[i].getId());
var sheet = sourceSpreadsheet.getSheets();
var sourcesSheet = sheet[1];
休息;
}
}
var targetSpreadsheetName = "Probando 脚本"; //DocsList.getFilesByType("电子表格");
//var targetSpreadsheet;
for (var i = 0; i < files.length; ++i) {
var 文件名 = 文件[i].getName();
if (filename == targetSpreadsheetName) {
var targetSpreadsheet = SpreadsheetApp.openById(files[i].getId());
var sheet = targetSpreadsheet.getSheets();
var targetSheet = sheet[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 = 来源[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 kolonnen = [];
var tbText = [];
for (var i = 1; i < 16; ++i) {
kolonnen.push(i);
tbText.push(来源[sourceRows-1][i-1]);
}
//Browser.msgBox("来源是:"+tbText);return;
对于 (j = 0; j < kolonnen.length; j++) {
var zellRange = targetSheet.getRange(rowToInsert+1, kolonnen[j], 1, 1);
zellRange.setValue(tbText[j]);
}
}