首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过google form注册课程

通过google form注册课程
EN

Stack Overflow用户
提问于 2017-03-17 02:11:32
回答 1查看 37关注 0票数 0

我试图使一个谷歌表单链接到一个类注册的谷歌工作表。随着这个过程的进行,他们希望学生选择他们的课程,然后让这些课程通过老师的通过或拒绝。我目前遇到的唯一问题是,一旦表单提交,我就会根据他们的老师将数据划分到不同的工作表中,我最近发现了一个代码,可以像这样对数据进行排序,但必须有一些用户输入,而不是表单响应,这样才能正常工作:

如果用户按下表单上的"submit form“按钮并提交表单,有没有办法让它自动将行转移到一个新的工作表。

代码语言:javascript
复制
/**
 * 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 = ss.getActiveSheet();
  var r = e.range;
  
  // to let you modify where the action and move columns are in the form responses sheet
  var actionCol = 4;
  var nameCol = 6;

  // 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 == "submit form" && 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);

    }
  }
}

我希望这是有道理的,约瑟夫

https://docs.google.com/spreadsheets/d/15P-SpC31qdzfBUsN1TBvRHFn5iptdDX_9T4UlNPMDuk/edit#gid=238259321

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-17 02:26:27

除非您希望能够编辑第二个工作表中的数据,否则不需要自定义代码。您可以使用=QUERY()函数将给定教师的所有条目放入该工作表中。因此,在thodges表的单元格A1中,放置:

代码语言:javascript
复制
=QUERY("Form Responses 6"!A1:M, "select * where F = 'thodges', 1)

这将按输入的顺序显示条目,您可以添加其他列以供教师执行操作或使用。

如果您只想要一个列表并希望项目按特定顺序排列,则可以使用其他语法,如添加“order by C”或Query() help page.上的其他语法

否则,将您的函数名更改为OnEdit以外的其他名称,并将其设置为On Form Submit Trigger

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

https://stackoverflow.com/questions/42841821

复制
相关文章

相似问题

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