簡體   English   中英

Google Sheets 腳本幫助請求:將選中的行從多個工作表復制到新工作表

[英]Google Sheets Script Help Request: Copy check boxed rows from multiple sheets to new sheet

全面披露:我的編程經驗為零,但我學得很快。

我試圖能夠從許多不同的工作表中復制單獨的行以復制到一個特定的工作表中。 我花了一些時間查看這個(很棒的)網站上以前的問題/答案,並且我能夠拼湊出一個似乎可以完成我正在尋找的部分內容的腳本。

我可以看到我可以/應該更改腳本中的哪個位置以獲得我正在尋找的功能——但我不知道在代碼中放入什么來實際做我希望做的事情。 我來到這個社區謙虛地尋求幫助/指導。

這是我拼湊的腳本和我一直在使用的示例的鏈接

function onEdit(event) {
 // assumes source data in sheet named ABC
 // target sheet of copy to named Interdisciplinary
 // getColumn with check-boxes is currently set to colu 15 or O
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var s = event.source.getActiveSheet();
 var r = event.source.getActiveRange();

 if(s.getName() == "ABC" && r.getColumn() == 15 && r.getValue() == true) {
   var row = r.getRow();
   var numColumns = s.getLastColumn();
   var targetSheet = ss.getSheetByName("Interdisciplinary");
   var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
   s.getRange(row, 1, 1, numColumns).copyTo(target);
  } else if(s.getName() == "Interdisciplinary" && r.getColumn() == 4 && r.getValue() == false) {
 }
}

我知道我正在確定要從(ABC)中提取數據的特定工作表,我可以放在那里從任何已單擊復選框的工作表中提取什么?

我也知道我正在將行復制到遠離 LastRow 的某個已定義位置的行。 我可以在那里放什么來將該行復制到我的學期標題中的一行或將復制到新工作表的頂部?

最后,我非常感謝社區可能對我的請求提出的任何其他評論、反饋和指導。

非常感謝! KD

您的代碼有效。 問題是您的電子表格中的代碼正在查看第 21 列,而不是第 15 列。

另外,我建議您查看事件 object中可用的屬性。 您應該使用它們而不是您編寫的前三個聲明。 您可以在下面看到我的版本中的更改。

function onEdit(event) {
  var sheets =  ["ABC", "DEF", "GHI", "JKL", "MNO"]; // Sheet names that will trigger execution. Case-sensitive.

  // target sheet of copy to named Interdisciplinary
  // getColumn with check-boxes is currently set to colu 15 or O
  var ss = event.source;
  var s = event.range.getSheet();
  var r = event.range;

  if (sheets.indexOf(s.getName()) != -1 && r.getColumn() == 15 && r.getValue() == true) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Interdisciplinary");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).copyTo(target);
  } else if(s.getName() == "Interdisciplinary" && r.getColumn() == 4 && r.getValue() == false) {

  }
}

編輯:我修改了代碼以向您展示如何允許從多個工作表觸發。

暫無
暫無

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

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