大家好,所以我在下面使用这个Google工作表脚本,它将一个工作表的全部内容复制到另一工作表。我希望此脚本仅在要复制的工作表的单元格TI中有值更改时触发。是否有人知道如何执行此操作?非常感谢您的帮助。
function Packaging() {
var t = SpreadsheetApp.openById('sheetid');
var pp = t.getSheetByName('UP');
var ppk = pp.getRange(1,1,pp.getLastRow(),pp.getLastColumn()).getValues();
var data = []
for (var i = 0; i< ppk.length ; i++){
if(ppk[i][24] == "Yes")
{
data.push(ppk[i])
}
}
var s = SpreadsheetApp.getActiveSpreadsheet();
var sp = s.getSheetByName('DOWN');
sp.getRange(1,1,sp.getLastRow(),sp.getLastColumn()).clearContent();
sp.getRange(1,1,data.length,data[0].length).setValues(data);
sp.deleteColumns(29, 7);
}
答案 0 :(得分:1)
尝试一下:
function onEdit(e) {
var sh=e.range.getSheet();
if(sh.getName()=='Sheet being copied' && e.range.columnStart=="col of cell" &&
e.range.rowStart=="row of cell" && e.value=="special value of cell") {
var vA=sh.getDataRange().getValues();
e.source.getSheetByName('sheet to copy to').getRange(1,1,vA.length,vA[0].length).setValues(vA);
}
}
也许是因为值的变化:
function onEdit(e) {
var sh=e.range.getSheet();
if(sh.getName()=='Sheet being copied' && e.range.columnStart=="col of cell" &&
e.range.rowStart=="row of cell" && e.oldValue && e.value!=e.oldValue) {
var vA=sh.getDataRange().getValues();
e.source.getSheetByName('sheet to copy to').getRange(1,1,vA.length,vA[0].length).setValues(vA);
}
}