如果列不为空白,如何将行移至第二张工作表

时间:2019-01-12 00:09:06

标签: google-apps-script google-sheets

我想添加一个脚本,如果一列不是空白的话,该脚本会将行移动到另一个选项卡

这是我正在使用的脚本。 “不要空白”是我需要弄清楚的部分。我知道如果它具有特定值时如何移动它,但是想知道如果它具有任何文本时如何使其移动。

function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  if(s.getName() == "Current" && r.getColumn() == 1 && r.getValue() == "NOT BLANK") {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Complete");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);   
    s.getRange(row, 1, 1, numColumns).moveTo(target); s.deleteRow(row);
  } 
}

如果目标列不是空白,则将行移至第二个标签页

1 个答案:

答案 0 :(得分:0)

更改此行:

if(s.getName() == "Current" && r.getColumn() == 1 && r.getValue() == "NOT BLANK")

对此:

if(event.range.getSheet().getName()=="Current" && event.range.columnStart==1 && event.value.length>0)

这是我玩了一点之后想到的。

function onEdit(e) {
  var ss=e.source;
  var rg=e.range;
  var sh=rg.getSheet();
  var col=rg.columnStart;
  if(sh.getName()=="Sheet46" && col==1 && e.value.length>0) {
    var row=rg.rowStart;
    var numColumns = sh.getLastColumn();
    var targetSheet = ss.getSheetByName("Sheet50");
    var target=targetSheet.getRange(targetSheet.getLastRow() + 1, 1);   
    sh.getRange(row, 1, 1, numColumns).moveTo(target); 
    sh.deleteRow(row);
  } 
}