2017-10-09 16 views
0

特定のセルが編集されたときに基づいて「保留中」シートから「ライブ」シートにコピーされた行のセルを選択したい"はい"。セルの値に基づいて行全体ではなく特定の範囲を別のGoogleシートにコピー

これまでのところ、列の特定のセルを編集して「はい」と答えると、行全体をコピーすることができました。

私はその行の特定のセルをコピーしてonEditに移動したいが、行全体は移動しないことが望ましい。たとえば、「保留中」シートで編集された行の2,3,5,6の内容は4,7,8などではなく、「Live」シートにコピーされます。

また、「ライブ」シートの列2を有する「保留中」シートの列2を有する「ライブ」シートにコピーする場合、しかし、列5および6については、列4はコピーされていないので、1列。だから、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); 
    } 
} 
関連する問題