0

配列を使用してスプレッドシートデータを処理し、それを操作しています。この場合、列でtrueの値を探してから、その行を削除したいと思います。これが私が持っているものです:

  for ( r = 1 ; r < Array1.length; r++) { 
    if(Array1[r][33]== true) { 
      calcSheet.deleteRow(Array1[r])};
  }

問題はありますが、解決策はわかりません。firstArray[r]は、行番号ではなく、行全体を配列として返します。行番号を取得するにはどうすればよいですか?それは私を避けています。

更新:これが完成したコードです。セルジュに改めて感謝します。
Sergeが、発生するスプレッドシートと配列のマッチングの問題を指摘していることに気付くでしょう。以下のコードもそれを処理します。それはそれらすべてのrがしていることです。

 var rr = 0

 for ( r = 1 ; r < firstArray.length; r++) { // iterate the first col of masterSheet
  if(firstArray[r][33]== true) { 
    var  rrr= rr + r
    calcSheet.deleteRow(rrr +1);
    rr--
  }
}     
4

1 に答える 1

2

この配列行に対応するシート行はr+1、配列が本当に完全であるかどうか、つまりrow1から始まるかどうかです(この最初の行にはいくつかのヘッダーが含まれていると思います。そのため、配列の1から繰り返します)。

ただし、行を削除すると別の副作用が発生します。配列はシートの正確なミラーではなくなります(行を削除するたびに1行ずつ大きくなります)。

この問題を回避する方法はたくさんあります。ヒントが必要な場合はお知らせください。

于 2013-03-01T17:11:11.230 に答える