我正在管理团队花名册的主文档。当前,我有此脚本,用于将其他名册文档中的更改添加到主名册文档中。我想指出对带有彩色单元格的主文档所做的任何更改。
母版表运行脚本以将数据从源doc(其他花名册doc)同步到目标doc(主花名册doc)。我要这样做,以便对主文档所做的任何更改都突出显示(更改的单元格背景色)。
对于此特定项目,更改是通过在文档中添加(文本的新行)和更改现有数据(更改文本的现有行)来定义的。
我不确定如何实现onEdit触发器。我已经阅读了其他问题的解决方案(即,当值更改为另一个特定值时更改颜色),但是我没有找到一个脚本来在一般更改时添加颜色(任何更改都不会,必须匹配特定值)。
// create menu buttons
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [{
name: "Sync Spreadsheet Data",
functionName: "copyDataToWorkingSpreadsheet"
}];
ss.addMenu("Data Update Functions", menuEntries);
};
// copy data from form sheet to live mapping sheet
function copyDataToWorkingSpreadsheet() {
// source doc
var sss = SpreadsheetApp.openById('Source Doc');
// source sheet
var ss = sss.getSheetByName('teams');
// source sheet
var ss = sss.getSheetByName('players');
// Get full range of data
var SRange = ss.getDataRange();
// get A1 notation identifying the range
var A1Range = SRange.getA1Notation();
// get the data values in range
var SData = SRange.getValues();
// target spreadsheet
var tss = SpreadsheetApp.openById('Target Doc');
// target sheet
var ts = tss.getSheetByName('teams');
// target sheet
var ts = tss.getSheetByName('players');
// set the target range to the values of the source data
ts.getRange(A1Range).setValues(SData);
};
现在,脚本可以像我需要的那样工作。非常感谢您实施颜色更改!
答案 0 :(得分:0)
类似的事情可能对您有用。
function trackChanges(e) {
var rg=e.range;
var sh=rg.getSheet();
if(sh.getName()=='players'){
var row=e.range.rowStart;
var col=e.range.columnStart;
sh.getRange(row,col).setBackground('#ffff00');//yellow highlight changes
}
}
请注意:您无法从脚本编辑器或菜单运行这样的功能(不提供here中所述的事件obj)。