【问题标题】:BarCode Maker (pulling data from other sheets)BarCode Maker(从其他工作表中提取数据)
【发布时间】:2016-09-28 20:02:42
【问题描述】:

我正在开发一个函数,该函数将根据我的电子表格中的几个数据点为库存中的项目构建条形码。

我的问题/问题有两个方面:

  1. 通过for loop 运行时,我收到此错误消息"TypeError: Cannot read property "length" from null."

  2. 虽然看起来我已经成功地将我想要的范围加载到真正的范围中,但我不完全确定如何调用它们,请告诉我我是否在 if 语句中正确调用它们?


function barCodeBuilder(stockName) {

  // Setting Ranges from prices table
  var sheet = SpreadsheetApp.getActive(); 
  var listNameRange = sheet.getRangeByName('MeterailsPricing!ITEM NAME');
  var listSkuRange = sheet.getRangeByName('MeterailsPricing!INVENTORY SKU');
  var listPriceRange = sheet.getRangeByName('MeterailsPricing!PRICE');
  var listSupRange = sheet.getRangeByName('MeterailsPricing!SUPPLIER CODE');

  //Errors begin here = TypeError: Cannot read property "length" from null
  for(listCounter = 0; listCounter < listNameRange.length; listCounter++){
    if(stockName == listNameRange[listCounter][0]){
      var barCode = {
        sku:listSkuRange[listCounter][0],
        supCode:listSupRange[listCounter][0],
        price:listPriceRange[listCounter][0]};
    }
  }

  //final bar code assembly
  var finalBarCode = barCode.sku + "-" + barCode.supCode + "-" + barCode.price;
  return finalBarCode;
}

和往常一样,感谢大家抽出时间来帮助我。

尽快与您交谈。 格雷格 R.

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    错误 "TypeError: Cannot read property "length" from null." 如果没有匹配正则表达式,则会发生。因此,listNameRange 将为空。您需要在循环之前检查这一点。

    来自SO answer的示例代码sn-p:

    if (templateVars !== null) {
        for (var i = 0; i < templateVars.length; i++) {
            ...
        }
    }
    

    这里有一些相关的 SO 帖子可能会有所帮助:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      相关资源
      最近更新 更多