【问题标题】:TypeError: Cannot read property "length" from undefined in Google apps scriptTypeError:无法从 Google 应用程序脚本中的未定义中读取属性“长度”
【发布时间】:2020-07-06 16:07:15
【问题描述】:

嗨,我在 googlesheet 中有一个名为“Rank sheet”的列 G2: G,其商店名称类似于 column G storeA storeB storeC storeA storeA storeD

我想创建一个函数名称“删除”(谷歌应用程序脚本)来删除重复名称的行,但是当我运行它时,gsheet 说:“TypeError:无法从未定义中读取属性“长度”。”任何人都可以帮助我修复它或帮助您的代码。非常感谢 我的代码是:

function remove() {
  var range2 = rankSheet.getRange("G2:G");
  var values2 = range2.getValues();
  for (var n = 0; n < values2.length; n++) {
if(values2[n] == values2[n+1]) {      
  var outarray = []
  outarray.push(n+2)
  Logger.log(outarray)
  }
}
  for (var m = 0; m <= outarray.length - 1; m++) {
  rankSheet.deleteRow(outarray[m]);
  }
}

【问题讨论】:

  • 首先要做的就是将 var outarray = [] 移到你的 for 循环之上。每次通过循环时,您都将其设置为一个新的空白数组,而不是添加它。
  • var range2 = rankSheet.getRange("G2:G"); -- rankSheet 是从哪里来的?它没有在您的函数中定义。它来自全局变量吗?当你提出问题时,你需要让人们知道这些事情。

标签: google-apps-script


【解决方案1】:

这意味着在您的第四行中,您试图从一个不存在的对象访问一个名为length 的属性。因此,如果您查看第 3 行,您对range2getValues() 调用将返回null

还要记住getValues()返回一个二维数组 https://developers.google.com/apps-script/reference/spreadsheet/range#getValues()

在分配values2后尝试注销它,看看它是什么^^

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2019-12-28
    • 1970-01-01
    相关资源
    最近更新 更多