2017-10-09 43 views
0

我希望根据何时编辑特定的单元格来从“等待”表复制到“活动”表中选择一行的单元格“是”。复制一个特定的范围不是整行到另一个基于单元值的谷歌表格

到目前为止,我可以在列中的特定单元格编辑为“是”时复制整行。

我想在该行中的特定单元格复制并移动onEdit,但不是整个行。例如,将“待处理”工作表中编辑的行的第2,3,5,6列的内容复制到“实时”工作表中。但是,对于第5列和第6列,它们应该同时移动到“实时”工作表上,其中“待处理”工作表的第2列与“实时”工作表的第2列相对应。但是,对于第5列和第6列,自第4列起的一列未被复制。所以,“待定” 5应该采取的“活”的地方4和“待定” 6应该采取的地方“活” 5.

function onEdit(event) { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var s = event.source.getActiveSheet(); 
    var r = event.source.getActiveRange(); 

if(s.getName() == "Pending" && r.getColumn() == 1 && r.getValue() == "Yes") { 
    var row = r.getRow(); 
    var numColumns = s.getLastColumn(); 
    var targetSheet = ss.getSheetByName("Live"); 
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1); 
    s.getRange(row, 1, 1, numColumns).copyTo(target); 
    } 
} 

回答

1

试试这个:

function onEdit(e) 
{ 
    var ss=e.source; 
    var sh=ss.getActiveSheet(); 
    var rg=sh.getActiveRange(); 
    var row=rg.getRow(); 
    var col=rg.getColumn(); 
    Logger.log(col); 
    if(sh.getName()=="Pending" && col==1 && rg.getValue()=="Yes") 
    { 
    var row = rg.getRow(); 
    var liveSht = ss.getSheetByName("Live"); 
    var vA=sh.getRange(row,col,1,6).getValues(); 
    var liveA=['',vA[0][1],vA[0][2],vA[0][4],vA[0][5]]; 
    liveSht.appendRow(liveA); 
    } 
} 
相关问题