根据条件将行移至另一个Google电子表格

时间:2014-12-19 13:48:47

标签: google-apps-script google-sheets

我想知道是否可以根据编辑(onEdit)特定列条目的条件自动将行移动到另一个Google电子表格,该条目可以是text,date,null或特定数字。

我尝试了很多次而无法解决这个难题。

来源(分享): https://docs.google.com/spreadsheets/d/1Of4NUdvcxvCUWNSwpbkC4X8nqHpBetHCvyyiGqUPaJk/edit?usp=sharing

目标(脚本)(共享): https://docs.google.com/spreadsheets/d/1J7ChXoodQNg47LOrnp_GF-KLR1jKHxdDGmfAErVTP_U/edit?usp=sharing

感谢任何帮助。瓦格纳

1 个答案:

答案 0 :(得分:0)

我在您的代码的第10行收到错误:

get Sheet by Name

这是您当前的代码:

function onEdit(){
  Logger.log("it ran!");

  var ss = SpreadsheetApp.openById("1Of4NUdvcxvCUWNSwpbkC4X8nqHpBetHCvyyiGqUPaJk").getActiveSheet();
  var ssd = SpreadsheetApp.openById("1J7ChXoodQNg47LOrnp_GF-KLR1jKHxdDGmfAErVTP_U").getActiveSheet();

  Logger.log("ss: " + ss);
  Logger.log("ssd: " + ssd);

  var sheet1 = ss.getSheetByName('Source');
  var sheet2 = ssd.getSheetByName('Destination');

  Logger.log("sheet1: " + sheet1);
  Logger.log("sheet2: " + sheet2);

这两行存在问题:

  var ss = SpreadsheetApp.openById("1Of4NUdvcxvCUWNSwpbkC4X8nqHpBetHCvyyiGqUPaJk").getActiveSheet();
  var ssd = SpreadsheetApp.openById("1J7ChXoodQNg47LOrnp_GF-KLR1jKHxdDGmfAErVTP_U").getActiveSheet();

您应该删除.getActiveSheet()

var ss = SpreadsheetApp.openById("1Of4NUdvcxvCUWNSwpbkC4X8nqHpBetHCvyyiGqUPaJk");
var ssd = SpreadsheetApp.openById("1J7ChXoodQNg47LOrnp_GF-KLR1jKHxdDGmfAErVTP_U");

直到我从代码编辑器内部运行代码后才出现该错误。我需要授权一些东西让它第一次运行。

我在调试模式下运行它。

当你在最后链接.getActiveSheet()方法时,它返回SHEET类,而不是SPREADSHEET类。有类的层次结构。 SHEET类是SPREADSHEET类下的较低级别。因此,您试图在包含SHEET返回类型的变量上为SPREADSHEET类使用方法。