簡體   English   中英

根據單元格值將特定范圍(不是整行)復制到另一個Google工作表

[英]Copy over a specific range not whole row to another google sheet based on cell value

我希望根據編輯特定單元格的時間將行的選定單元格從“待處理”工作表復制到“實時”工作表,說“是”。

到目前為止,當將列中的特定單元格編輯為“是”時,我可以復制整行。

我希望該行中的特定單元格復制並移動onEdit,而不是整個行。 例如,將在“待處理”工作表中編輯的行的第2、3、5、6列而不是4、7、8等的內容復制到“實時”工作表中。

同樣,當復制到“活動”工作表時,“待處理”工作表的第2列與“活動”工作表的第2列對齊。但是對於第5列和第6列,它們都應從第1列移到第一列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);
   }
}

嘗試這個:

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);
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM