簡體   English   中英

在工作表之間移動數據並添加 static 日期戳的腳本(Google 工作表)

[英]Script to move data between sheets and adding a static date stamp (Google sheets)

我需要一些幫助。 我有一個電子表格,通過單擊要移動的行旁邊的文本框,將數據從一張工作表(JDE 工作列表)移動到下一張(打印)。 當復選框在第一次移動后未被選中時,它會將其移動到最終工作表(PrintedArchive)。 這部分工作正常。

問題是,一旦它被移動到下一張表以捕獲開始和結束日期,我需要在該行旁邊有一個 static 日期戳。 可以將日期添加到 BE 列。

如果我嘗試添加一個單獨的腳本來添加日期戳,則用於移動數據的腳本將停止運行。 那么有沒有辦法將其合並到移動數據的腳本中呢?

請注意,沒有太多經驗,我仍在學習,非常感謝您的幫助。

這是我目前用來移動數據的腳本

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

  if(s.getName() == "JDE Worklist" && r.getColumn() == 1 && r.getValue() == true) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Printed");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  } else if(s.getName() == "Printed" && r.getColumn() == 1 && r.getValue() == false) {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("PrintedArchive");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);

  

  }
}


樣本表

嘗試這個:

function onEdit(e) {
  e.source.toast("Entry");
  const s = e.range.getSheet();
  if (s.getName() == "JDE Worklist" && e.range.columnStart == 1 && e.value == "TRUE") {
    var tsh = e.source.getSheetByName("Printed");
    var trg = tsh.getRange(tsh.getLastRow() + 1, 1);
    s.getRange(e.range.rowStart, 1, 1, s.getLastColumn()).moveTo(trg);
    tsh.getRange("BE" + e.range.rowStart).setValue(new Date());
    s.deleteRow(e.range.rowStart);
  } else if (s.getName() == "Printed" && e.range.columnStart == 1 && e.value == "FALSE") {
    var tsh = e.source.getSheetByName("PrintedArchive");
    var trg = tsh.getRange(tsh.getLastRow() + 1, 1);
    s.getRange(e.range.rowStart, 1, 1, s.getLastColumn()).moveTo(trg);
    tsh.getRange("BE" + e.range.rowStart).setValue(new Date());
    s.deleteRow(e.range.rowStart);
  }
}

暫無
暫無

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

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