【问题标题】:Google Sheets script editor - script does not work after saving谷歌表格脚本编辑器 - 保存后脚本不起作用
【发布时间】:2019-11-25 19:24:49
【问题描述】:

我下面的脚本没有运行。当某个列在 Google 表格脚本编辑器中具有“完成”下拉选项时,我想将整行自动移动到新工作表中。

Move row to new sheet if column 53 is "Complete"

这是我的代码:

/**
 * Moves row of data to another spreadsheet based on criteria in column 6 to sheet with same name as the value in column 4.
*/

function onEdit(e) {
  // see Sheet event objects docs
  // https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events
  var ss = e.source;
  var s = e.range.getSheet();
  var r = e.range;
  
  // to let you modify where the action and move columns are in the form responses sheet
  var actionCol = 53;
  var nameCol = 51;

  // Get the row and column of the active cell.
  var rowIndex = r.getRowIndex();
  var colIndex = r.getColumnIndex();
  
  // Get the number of columns in the active sheet.
  // -1 to drop our action/status column
  var colNumber = s.getLastColumn()-1;
  
  // if our action/status col is changed to ok do stuff
  if (e.value == "Complete" && colIndex == actionCol) {
    // get our target sheet name - in this example we are using the priority column
    var targetSheet = s.getRange(rowIndex, nameCol).getValue();
    // if the sheet exists do more stuff
    if (ss.getSheetByName(targetSheet)) { 
      // set our target sheet and target range
      var targetSheet = ss.getSheetByName(targetSheet);
      var targetRange = targetSheet.getRange(targetSheet.getLastRow()+1, 1, 1, colNumber);
      // get our source range/row
      var sourceRange = s.getRange(rowIndex, 1, 1, colNumber);
      // new sheets says: 'Cannot cut from form data. Use copy instead.' 
      sourceRange.copyTo(targetRange);
      // ..but we can still delete the row after
      s.deleteRow(rowIndex);
      // or you might want to keep but note move e.g. r.setValue("moved");
    }
  }
}

【问题讨论】:

    标签: javascript google-sheets editor


    【解决方案1】:
      if (e.value == "Complete" && colIndex == actionCol)
    

    您的屏幕截图显示“完成d”而不是“完成”

    【讨论】:

    • 很好,我编辑了代码以反映“已完成”,但它仍然无法正常工作。感谢您查看伊恩,如果您有任何其他建议,我将不胜感激! :)
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多