0

スクリプトを使用して、Google ドキュメントでデータをあるシートから別のシートにコピーしようとしています。どちらのシートも同じスプレッドシート ドキュメントの一部です。A列の値が「名前」の場合、1枚目のシートの情報を2枚目のシートにコピーしたいと思います。私は JavaScript の基本的な知識を持っており、これまでのところ次のことを考え出すことができました。

function copytoo(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = SpreadsheetApp.setActiveSheet(ss.getSheets()[0]);// selects the first sheet in     your spreadsheet
  var data = sh.getDataRange().getValues();// data is a 2D array, index 0 = col A
  var target = new Array();// this is a new array to collect data
  for(n=0;n<data.length;++n){ // iterate in the array, row by row
    if (data[n][0]=="Name"){ ;// if condition is true copy the whole row to target
    taget.push(data[n]);// copy the whole row
    }//if
    }//for
  var sh2=SpreadsheetApp.setActiveSheet(ss.getSheets()[1]); //second sheet of your spreadsheet
  sh2.getRange(1,1,target.length,target[0].length).setValues();// paste the selected     values in the 2cond sheet in one batch write
}//function 

上記を実行すると、次のようになります。

TypeError: undefined からプロパティ "length" を読み取れません。(13行目、ファイル「コード」)

4

1 に答える 1

1

考えられる問題の原因:

taget.push(data[n]);// copy the whole row
^^^^^

あなたはおそらく意味しtargetた。そのままでは、次の問題が発生します。

target[0].length

に何もプッシュしたことtargetがないtarget[0]ため、定義されていないため、もちろんlengthプロパティはありません。

を修正しても、プロパティを持つ がtaget存在することを保証するか、の場合は操作をスキップしない限り、このエラーのリスクがあります。target[0]lengthtarget.length === 0

于 2013-08-28T03:28:37.423 に答える