簡體   English   中英

從工作表 A 復制行並將其附加到 Google 工作表的工作表 B 中

[英]Copy Row From Sheet A and append it in Sheet B in Google Sheet

我有包含幾行的工作表 A,當單擊復選框時,它應該復制到工作表 B 中。

表A

在此處輸入圖片說明

當我選擇一個復選框時,我希望該記錄復制到工作表 B 中,並保留在工作表 A 中,只有 ID 和名稱

這是我寫的代碼

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

  if (s.getName() == "SheetA" && r.getColumn() == 8 && r.getValue() == true) {
    var row = r.getRow();
    var numColumns = s.getLastColumn() - 1;
    var targetSheet1 = ss.getSheetByName("SheetB");
    var target1 = targetSheet1.getRange(targetSheet1.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target1);
    Browser.msgBox("Your Record Submitted");
    s.deleteRow(row);
  }
}

提前致謝

我相信你的目標如下。

  • 當“SheetA”中“H”列的復選框被選中時,您想將與復選框同一行的值(“A”列到“G”列)復制到“SheetB”最后一行的下一行" 使用帶有 Google Apps 腳本的簡單觸發器。
  • 復制值時,您希望保留列“A”和“B”的值。

改裝要點:

  • 在你的腳本中,通過s.getRange(row, 1, 1, numColumns).moveTo(target1); ,該行的所有值都被移動。 這樣,列“A”和“B”的值也被刪除。 而且,通過s.deleteRow(row); ,該行被刪除。

當以上幾點反映到你的腳本中時,它變成如下。

修改后的腳本:

function onEdit(event) {
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  if (s.getName() == "SheetA" && r.getColumn() == 8 && r.getValue() === true) {
    var row = r.getRow();
    var numColumns = s.getLastColumn()-1;
    var targetSheet1 = event.source.getSheetByName("SheetB");
    var target1 = targetSheet1.getRange(targetSheet1.getLastRow() + 1, 1);
    
    // I modified below script.
    var range = s.getRange(row, 1, 1, numColumns);
    if (!range.getValues()[0].every(e => e.toString() == "")) {  // Added
      range.copyTo(target1);
      range.offset(0, 2, 1, 5).clearContent();
      range.offset(0, 7).uncheck();
      Browser.msgBox("Your Record Submitted");
    }
  } 
}
  • 使用此腳本時,請勾選“SheetA”中“H”列的復選框。 至此,腳本運行完畢。 運行腳本時,“A”到“G”列的值被復制到“SheetB”,“C”到“G”列的值被清除。 而且,復選框未選中。 這樣,不會刪除“A”和“B”列的值。
  • range.offset(0, 2, 1, 6).clearContent(); 使用, range.offset(0, 7).uncheck(); 不需要使用。 但在這種情況下,復選框的值也被刪除。 所以在這個修改中,我使用了uncheck() 這樣,復選框的值更改為FALSE

參考:

暫無
暫無

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

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