使用onFormSubmit触发器给定范围时如何写入单元格?(Google Apps脚本)

托克洛490

我不熟悉使用Google Apps脚本进行编码,并且正在尝试为电子表格创建一个简单的案例检查器。

在这种情况下,我想检查名称的首字母是否大写,如果不是,我想用更正的版本(相同的名称,仅将首字母大写)替换。

尝试在编辑器中运行该代码时将返回错误(无法读取未定义的属性“ range”。)我猜这是因为它使用的是onFormSubmit触发器,因此测试它的唯一方法是实际提交表单响应。

发布新的表单响应并触发该功能后,它似乎在电子表格的末尾没有任何作用。包含名字和姓氏的新单元格(或与此有关的任何新单元格)都不会更改,无论是否用大写字母大写。

当使用以相同方式引用单元格的单独函数(获取一系列新提交的单元格并在for循环中将它们指定为row [numberhere])时,它会很好地读取其字符串。

function caseCheck(r) {
  var range = r.range;
  var data1 = range.getValue();
  for (var r in data1) {
    var row1 = data1[r];
    var firstName = row1[2].getValue;
    var lastName = row1[3].getValue;
    var firstNameC = firstName[0].toUpperCase();
    var lastNameC = lastName[0].toUpperCase();

    if (firstName[0] != firstNameC) {
      var firstNameL = firstName.length();
      var firstNameSS = firstName.substring(1,firstNameL);
      var firstNameCorrected = firstNameC + firstNameSS;
      row1[2].setValue(firstNameCorrected);
    }

    if (lastName[0] != lastNameC) {
      var lastNameL = lastName.length();
      var lastNameSS = lastName.substring(1,lastNameL);
      var lastNameCorrected = lastNameC + lastNameSS;
      row1[3].setValue(lastNameCorrected);
    }
  }
}
德莫林

如图所示,您的代码有几个问题。

我想你的意思是要用复数range.getValues()range.getValue()作为.getValue仅返回范围的左上角单元格内的对象。如果data1是字符串,则for (var r in data1)仅循环遍历字符串,而不是值数组。

假设您已修复data1它是一个数组数组,那么row1它只是一个JavaScript数组,大概是一个字符串数组,因此您正在使用的各个位置row1[2].getValue例如,它们都没有括号)并且row1[2].setValue(firstNameCorrected)应该没有任何作用因为这些是字符串,而不是Range对象。

您需要做的是根据需要更改数据数组,然后range.setValues(data)使用更改后的数据进行调用

function caseCheck(r) {
  var range = r.range;
  var data = range.getValues();
  for (var r in data) {
    var row = data[r];
    // do whatever mutation to row you want
  }
  range.setValues(data);
}

附带说明一下,个人喜好/建议,这种命令式的变异代码很难阅读和维护。考虑使用更多(或更小的)功能...

function caseCheck(r) {
  var range = r.range;
  var data = range.getValues();
  var newData = data.map(rowCapitalizeFunction);
  range.setValues(newData);
}

function rowCapitalizeFunction(row) {
  var firstName = row[2];
  // etc ... do what you need to do
  return [/* send back a new array with new values, much easier to understand! */];
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Apps脚本onFormSubmit触发器

来自分类Dev

Google Apps脚本:当给定列中的单元格不为空白时,激活并排序行

来自分类Dev

如何使用 Apps 脚本填充符合条件的单元格?

来自分类Dev

调用Google Apps脚本

来自分类Dev

Google Apps脚本要求

来自分类Dev

Google Apps脚本makeCopy

来自分类Dev

Google Apps脚本:onEdit

来自分类Dev

调用Google Apps脚本

来自分类Dev

如何从Google Apps脚本中与我的活动单元格相同的行中获取范围

来自分类Dev

复制输入数据并将其粘贴到电子表格中时,使用什么触发器来更新单元格?(Google表格/应用脚本)

来自分类Dev

Google Apps脚本-根据单元格值查找行号

来自分类Dev

如何使用Google Apps脚本获取单元格的格式值

来自分类Dev

如何使用Google Apps脚本向电子表格单元格添加链接

来自分类Dev

如何使用Google Apps脚本向电子表格单元格添加链接

来自分类Dev

Google表格脚本->如何基于单元格触发器将行作为值复制到另一个选项卡,然后清除触发器单元格?

来自分类Dev

Google表格脚本->如何基于单元格触发器将行作为值复制到另一个选项卡,然后清除触发器单元格?

来自分类Dev

Google Apps脚本的Java脚本优化

来自分类Dev

使用Google Apps脚本保护范围

来自分类Dev

Google Apps脚本:比较日期

来自分类Dev

删除google-apps脚本

来自分类Dev

Google Apps脚本的授权错误

来自分类Dev

Google Apps脚本上的附件

来自分类Dev

Google Form + Apps脚本onEdit

来自分类Dev

从Google Apps脚本启动下载

来自分类Dev

Google Apps脚本错误值

来自分类Dev

删除google-apps脚本

来自分类Dev

Firebase 与 Google Apps 脚本的通信

来自分类Dev

简单的 For 循环 Google Apps 脚本

来自分类Dev

使用Apps脚本的HTML邮件

Related 相关文章

  1. 1

    Apps脚本onFormSubmit触发器

  2. 2

    Google Apps脚本:当给定列中的单元格不为空白时,激活并排序行

  3. 3

    如何使用 Apps 脚本填充符合条件的单元格?

  4. 4

    调用Google Apps脚本

  5. 5

    Google Apps脚本要求

  6. 6

    Google Apps脚本makeCopy

  7. 7

    Google Apps脚本:onEdit

  8. 8

    调用Google Apps脚本

  9. 9

    如何从Google Apps脚本中与我的活动单元格相同的行中获取范围

  10. 10

    复制输入数据并将其粘贴到电子表格中时,使用什么触发器来更新单元格?(Google表格/应用脚本)

  11. 11

    Google Apps脚本-根据单元格值查找行号

  12. 12

    如何使用Google Apps脚本获取单元格的格式值

  13. 13

    如何使用Google Apps脚本向电子表格单元格添加链接

  14. 14

    如何使用Google Apps脚本向电子表格单元格添加链接

  15. 15

    Google表格脚本->如何基于单元格触发器将行作为值复制到另一个选项卡,然后清除触发器单元格?

  16. 16

    Google表格脚本->如何基于单元格触发器将行作为值复制到另一个选项卡,然后清除触发器单元格?

  17. 17

    Google Apps脚本的Java脚本优化

  18. 18

    使用Google Apps脚本保护范围

  19. 19

    Google Apps脚本:比较日期

  20. 20

    删除google-apps脚本

  21. 21

    Google Apps脚本的授权错误

  22. 22

    Google Apps脚本上的附件

  23. 23

    Google Form + Apps脚本onEdit

  24. 24

    从Google Apps脚本启动下载

  25. 25

    Google Apps脚本错误值

  26. 26

    删除google-apps脚本

  27. 27

    Firebase 与 Google Apps 脚本的通信

  28. 28

    简单的 For 循环 Google Apps 脚本

  29. 29

    使用Apps脚本的HTML邮件

热门标签

归档