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

时间:2019-04-05 09:53:48

标签: javascript google-apps-script

我正在尝试基于“ 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],如果显示“已解决”,请删除该行。冲洗并重复直到current_Row == 0,然后断开。目前找不到列D。

1 个答案:

答案 0 :(得分: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);
    }
  }
}