首页 > 解决方案 > 如何解决 getrange 错误“范围内的行数必须至少为 1”?

问题描述

下面的代码行抛出一个错误 var FillDownRange = bp.getRange(2, 6, lr-1);

错误信息

例外:范围内的行数必须至少为 1。

为什么我会收到此错误消息?

这是完整的功能:

function ProcessBlueprint() {
  //Formula: What is the top query for the URL?
  bp.getRange("F2").setFormula("=IFERROR(VLOOKUP(C2,GSC!$A$2:$F,2,false),)");
  var FillDownRange = bp.getRange(2, 6, lr-1);
  bp.getRange("F2").copyTo(FillDownRange);
}

标签: google-apps-scriptgoogle-sheets

解决方案


问题:

lr-1小于1。确保您的工作表至少有两行。

  • 现在它有0or 1,假设它lr是由getLastRow()计算的。

解决方案:

您可以通过简单的if条件避免该问题:

  bp.getRange("F2").setFormula("=IFERROR(VLOOKUP(C2,GSC!$A$2:$F,2,false),)");
  if(lr>1){
    var FillDownRange = bp.getRange(2, 6, lr-1);
    bp.getRange("F2").copyTo(FillDownRange);
  }

2如果最后一行是0or ,另一个想法是使用1

  bp.getRange("F2").setFormula("=IFERROR(VLOOKUP(C2,GSC!$A$2:$F,2,false),)");
  const fr = lr>1?lr:2;
  var FillDownRange = bp.getRange(2, 6, fr-1);
  bp.getRange("F2").copyTo(FillDownRange);

确保理解里面的参数getRange代表什么:

Sheet.getRange(1,1,1,12) 括号中的数字表示什么?


推荐阅读