2016-06-01 52 views
0
function slReceive() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheetRSL = ss.getSheetByName("Salt Lake Receive"); 
    var dataRangeRSL = sheetRSL.getDataRange(); 
    var lastRowRSL = dataRangeRSL.getLastRow(); 
    var valuesRSL = dataRangeRSL.getValues(); 
    var insertArrRSL = new Array(); 

    for (var j = 0; j < lastRowRSL-1 ; j++){ 
    insertArrRSL[j] = new Array(); 
    } 

    for (var i = 1; i < lastRowRSL-1 ; i++){ 

    if (valuesRSL[i][11] == 0){ 

     insertArrRSL[i][0] = 0; 

    } 

    } 

    var insertRange = sheetRSL.getRange(2,15,lastRowRSL-1,1); 
    insertRange.setValues(insertArrRSL); 

    Logger.log(valuesRSL); 
} 

正しく動作するように苦労しています。私は空白の列Oを持っています。私はスクリプトを行単位で行をチェックし、Lの対応するセルが0に等しい場合に値を0に設定します。範囲の幅が正しくありません。 Google AppsスクリプトとGoogleシート

例:L2 == 0の場合、O2を0に設定します。L3 == 0 O3を0に設定します。

私はこれを実行したときに私が手にエラーが誤ったレンジ幅

では、0でしたが、1(ライン24、ファイル「コード」)

答えて

1

する必要がありますあなたのような、これは簡単に行うことができますこの。ちょうど2つの列を扱うL & O.

function slReceive1() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName("Salt Lake Receive"); 
    var lr = ss.getLastRow(); 
    var valuesL = sheet.getRange("L2:L"+lr).getValues(); 
    var valuesO = sheet.getRange("O2:O"+lr).getValues(); 
    for (var i = 0; i < valuesL.length ; i++){ 
    if (valuesL[i][0] == 0){ 
      valuesO[i][0] = 0; 
     }} 
    var insertRange = sheet.getRange("O2:O"+lr); 
    insertRange.setValues(valuesO); 
} 
+0

お返事ありがとう!シート全体に書き込むことなくそれを行う方法はありますか?ほとんどの列には数式がありますが、これはO列に挿入しようとしたところです。 – enano2054

+0

これは、2つの列のみを扱うようにしてください。 –

関連する問題