为什么这段代码找不到我的.getDataRange中引用的列?

问题描述 投票:0回答:1

我试图逐行删除基于列'D'单元格中的值的行。

for语句工作正常并从数据输​​入的最后一行倒计时,正如我所知,当删除单元格时,你应该从底部开始并向上运行。

但出于某种原因,它一直在说''无法读取未定义的属性'3'。

我试过移动.getDataRange,尝试将其全部更改为.getRange(无效和更复杂),我已经改变了大部分代码的位置,看看是否有帮助。不能为我的生活找到解决这个问题的方法。

function removeResolvedRows(){

 var snowData_dataRange = snowData.getDataRange().getValues()

 var snowData_lastRow = snowData.getLastRow()

 var nPDN = newPriorDayData.filter(String).length;

 var current_row = +nPDN

for (var n = current_row; n < snowData_lastRow; n--){      

 var status = snowData_dataRange[n][3];

if (status == 'Resolved'){

 snowData.deleteRow[n];

if (n == 0) break;

}                 
}
}

我想要它做的是循环通过[current_row][Column D],如果它说Resolved,删除该行。冲洗并重复直至current_Row == 0然后破裂。目前它不会找到D列。

javascript google-apps-script
1个回答
0
投票

不知道这两条线在做什么。

var nPDN = newPriorDayData.filter(String).length;
var current_row = +nPDN;

所以我选择了一个简单的解决方案,您可以根据自己的需要添加内容。它检查D列中的已解决,如果找到,则删除行。

function removeResolvedRows() {
  var values = snowData.getDataRange().getValues();
  var rows_num = snowData.getLastRow();

  for (var n = rows_num; n > 0; n--) {
    if (values[n-1][3] == 'Resolved') {
      snowData.deleteRow(n);
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.