【问题标题】:Incorrect Range Height - Google Script范围高度不正确 - Google 脚本
【发布时间】:2014-03-04 00:49:45
【问题描述】:

我正在尝试创建一个 Google 表格脚本,该脚本将获取名称列表并将其重新发送到 Google 表格。我有两列数据,第一列包含人名。第二列包含多个单元格,第一个单元格中的人邀请参加聚会。这会产生一个问题,第 1 列中的名称可能在第 2 行,但如果他们邀请 20 人,则第 1 列的第 3-21 行有空格。现在对你们大多数人来说可能听起来毫无意义,但我希望能够按邀请人姓名的字母顺序对工作表进行排序,并且能够按客人姓名的字母顺序将其排序到单独的工作表中在第 2 列中,同时仍然跟踪邀请他们的人。这是我能想到的完成任务的唯一方法。

我目前正坚持将数组写回工作表,我不断收到“范围高度不正确,为 1 但应该为 339”。我已经想出了如何成功获取一组数据,完全按照我想要的方式填充,但似乎无法获得这部分。我在这里搜索并尝试实施我找到的解决方案,但没有运气。

这是我到目前为止想出的,它一直有效,直到 setValues(

 function inviteSorter() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var current = sheet.getSheets()[0];
  var lastRow = current.getLastRow();
  var rangeData = current.getRange(2,1,lastRow-1,3);
  var numColumns = rangeData.getNumColumns();
//  Logger.log(rangeData);
  var info = rangeData.getValues();
  var Name = {};
//  Examines the cell in the first column, if it is empty replaces it with the name from the previous cell.
  for ( var i = 0; i< info.length; i++){
    if (typeof(info[i][0]) == "string" && info[i][0] == ""){
      Name[i] = Name[i-1];
    } else{
    Name[i] = info[i][0];
    }

  }
  var data = []
  for (var i = 0; i<lastRow-1; i++){
    data.push(Name[i]);
  }

  var writeRange = current.getRange(2,1,data.length,1);

  writeRange.setValues([data]);

【问题讨论】:

  • 希望这会有所帮助。也许你的最后一行应该是 writeRange.setValues(data); .. 但是从你正在学习如何编程的东西的外观来看,这不是一个获得帮助的好地方。祝你好运。
  • 我承认我对这一切都有基本的了解,但对概念的掌握程度足以让我在大多数情况下都能实现我想要的。我通常会挂断我看不正确的事情。我知道我需要将我的数组“转置”为列格式,但我没有看到明显的解决方案。我的原始代码是你的建议,我得到了一个数组错误的对象。我的代码本来可以工作,除非我试图将一行数据写入一列。就像我说的那样,我明白了概念,但有时我只是被挂断了。
  • 感谢您的建议。抱歉,如果那是敌对的,请重新阅读它。
  • 我有一个调试的基本规则。收集更多信息:所以......添加日志,使用调试器,更改我的代码,修改一个工作示例。我的但是,我有太多的,总是由于缺乏信息造成的。 .... 很高兴你找到了它的底部。

标签: google-apps-script


【解决方案1】:

您期望的值应该是一个二维数组,一列多行。使用data.push(Name[i]); 得到的是一个简单的字符串数组。

试试这个方法:data.push([Name[i]]);这将返回一个数组数组并且应该满足setValues(data)的条件

(不要忘记删除最后一个 setValues 语句中的括号)

【讨论】:

  • 做到了。我一直都知道我必须做什么,但只是没有看到如何去做。谢谢!
猜你喜欢
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多