首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google Sheets Move on Edit if - Move on Edit if - Not

Google Sheets Move on Edit if - Move on Edit if - Not
EN

Stack Overflow用户
提问于 2021-02-16 05:03:03
回答 1查看 27关注 0票数 0

我有2个谷歌工作表与列E是一个状态下拉多个状态条目。我的工作表被称为"Sheet1“和"Completed”。在status下拉列表中选择"complete“后,我希望将行移动到"Completed”工作表。在移动并激活"Completed“工作表之后,如果我在status下拉列表中选择了"complete”之外的任何内容,我希望该行被移回"Sheet1“。

这是我到目前为止所拥有的。它会将我的行从sheet1移动到completed,但不会移到另一方向。如有任何帮助,我们将非常感谢:

代码语言:javascript
运行
复制
    function onEdit(event) {
      // assumes source data in sheet named Sheet1
      // target sheet of move to named Completed
      // test column with "10 Complete" is col 5 or E
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var s = event.source.getActiveSheet();
      var r = event.source.getActiveRange();
      if(s.getName() == "Sheet1" && r.getColumn() == 5 && 
    r.getValue() == "10 Complete") {
        var row = r.getRow();
        var numColumns = s.getLastColumn();
        var targetSheet = ss.getSheetByName("Completed");
        var target = 
    targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
        s.getRange(row, 1, 1, numColumns).moveTo(target);
        s.deleteRow(row);
      if(s.getName() == "Completed" && r.getColumn() == 5 
    && r.getValue() != "10 Complete") {
        var row = r.getRow();
        var numColumns = s.getLastColumn();
        var targetSheet = ss.getSheetByName("Sheet1");
        var target = 
    targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
        s.getRange(row, 1, 1, numColumns).moveTo(target);
        s.deleteRow(row);
        }
    }
    }
EN

回答 1

Stack Overflow用户

发布于 2021-02-16 06:48:03

你的代码不能工作的原因是你把你的第二个IF语句放在第一个IF语句中。第二个IF语句将永远不会执行。

你当前的代码:

代码语言:javascript
运行
复制
function onEdit(event){
  
  if(s.getName() == "Sheet1" && r.getColumn() == 5 && 
    r.getValue() == "10 Complete") {

    .....

    if(s.getName() == "Completed" && r.getColumn() == 5 
    && r.getValue() != "10 Complete") {
    ......
    }
  }
}

解决方案:

2个IF语句应该在同一级别上。

工作代码:

代码语言:javascript
运行
复制
function onEdit(event) {
  // assumes source data in sheet named Sheet1
  // target sheet of move to named Completed
  // test column with "10 Complete" is col 5 or E
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  if(s.getName() == "Sheet1" && r.getColumn() == 5 && 
    r.getValue() == "10 Complete") {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Completed");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }
    
  if(s.getName() == "Completed" && r.getColumn() == 5 
  && r.getValue() != "10 Complete") {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Sheet1");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
  }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66215375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档