2017-02-24 6 views
0

私はVBAとPythonから来て、Googleスプレッドシートでjavascriptのハングアップを試みています。私はかなり簡単なことをやろうとしています。Googleシートのスクリプト - ループ内の値が異なるセル

  1. 列Dの最後の行を探す - 成功で
  2. LASTROWスルー列2から列Dでの名前の配列 - 成功で
  3. コピーの行のセルiの値は、列Eに貼り付ける -
成功していません

data[0][0]を見て、コラムEの情報をコピーしてから、data[1][0]を見て、コラムEなどのコピーインフォメーションをlastRowまでコピーする必要があります。すべてが最後の行まで機能し、「範囲の座標または寸法が無効です」というエラーが表示されます。

はここに私のコードです:私はそれを考え出したよりそれをいじり後

function GatherStoreInfo() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var ReportSheet = ss.getSheetByName('Report'); 

    for (var i = 0; i < lastRow('A') + 1; i = i+1) { 
    var data = ReportSheet.getRange(2, 4, lastRow('D'), 1).getValues(); 
    ReportSheet.getRange(i, 2).setValue(data[i][0]); // <- This doesn't work 
    } 
} 

答えて

0

OK:(FYI lastrow()は、指定された列の最後の行番号を見つける機能です)。私は誰かがこれにつまずいた場合のために答えを投稿するつもりだと思う。

基本的には、私が0で開始していたために範囲内で行0から開始するように指示していたため、範囲内にi + 1を追加する必要がありました。最終コードは次のとおりです。

function GatherStoreInfo() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var ReportSheet = ss.getSheetByName('Report'); 

    for (var i = 0; i < lastRow('A'); i = i+1) { 
    var data = ReportSheet.getRange(1, 4, lastRow('D'), 1).getValues(); 
    SpreadsheetApp.getActiveSheet().getRange(i + 1, 5).setValue(data[i]); 
    } 
} 
関連する問題