首页 > 解决方案 > 如何修复 Google 脚本错误“TypeError:无法读取未定义的属性“长度”(第 59 行,文件“代码”)?

问题描述

我有这个工作正常的代码。该代码应该使用列 E 中的值将数据从一个电子表格复制和过滤到另一个电子表格。当我输入某些值(如“业务 2”)时,它运行良好。但是,如果我输入其他值,例如“业务 1”,我会收到此错误 -“TypeError:无法读取未定义的属性“长度”(第 59 行,文件“代码”)”

我已经用 =CLEAN(TRIM()) 清理并修剪了单元格内容

这是代码

function copySheetValuesV2(){
  var source = SpreadsheetApp.getActiveSheet();
  var sourceName = source.getSheetName();
  var sValues = source.getDataRange().getValues();

  //var rawData = range.getValues()     // get value from spreadsheet 1
var data = []                       // Filtered Data will be stored in this array
for (var i = 0; i< sValues.length ; i++){
if(sValues[i][4] == "Business 1")            // Check to see if column E says "Business 1" if not skip it
{
data.push(sValues[i])
}
}

  var destination = SpreadsheetApp.openById('idvalue');
  var shttoDelete = destination.getSheetByName('Copy of Dashboard');


  source.copyTo(destination);
  var destinationSheet = destination.getSheetByName('Copy of '+sourceName);
  destinationSheet.getRange(2,1,data.length,data[0].length).setValues(data);// overwrite all formulas that the copyTo preserved
  destinationSheet.getRange(data.length + 1,1,destinationSheet.getLastRow(),destinationSheet.getLastColumn()).clearContent();


}

我需要帮助来找出脚本没有从列中读取某些值的原因。

标签: javascriptgoogle-apps-scriptgoogle-sheets

解决方案


我在另一个单元格中输入了文本“Business 1”。然后我复制它以替换列中的现有文本。


推荐阅读