2017-05-16 12 views
0

私は、バーコード列の値の最後に最後の数字をとっているシートを持っています。これは、注文のアイテムの総数を表しています。私はそれらの値を配列に入れます。次に、配列の値を "Number of Units"列に設定しようとしました。ただし、列のすべてのセルに配列の最初の値を配置しています。配列の各値を「Number of Units」列の下のセルに入れるにはどうすればよいですか?ここで配列の値の1つだけを貼り付ける配列のsetValue()

は、シート内の問題を見ている: enter image description here

ここでコードが行うことになっているものです(私は手動で値を入れる)enter image description here

番号の最後の後バーコード列のハイフンは単位数です。ここで

は、バーコードの値を分割し、配列に番号を追加し、私のコードです:

function numberOfUnits() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 

    //Get specific sheet 
    var sheet = ss.getSheetByName('Sheet3'); 

    // get teh data on the sheet 
    var values = sheet.getDataRange().getValues(); 
    var units = [] 
    for (var i = 1 ; i < values.length; i++) { 
    var barcode = values[i][1]; 
    var unit = barcode.split('-'); 
    units.push(unit[unit.length-1]); 

    } 
    return units; 
} 

これがうまく動作するようだが、私は別の関数内からこの関数を呼び出すときにときに私、それはありますエラーを取得します。

function rate() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 

    //Get specific sheet 
    var sheet = ss.getSheetByName('Sheet3'); 

    // get the data on the sheet 
    var values = sheet.getDataRange().getValues(); 
    // sets the units as an array of all the units values 
    var units = numberOfUnits(); 
    // sets the unit value to every cell under the "number of units" column 
    sheet.getRange(2, values[0].length, values.length, 1).setValue(units); 

} 

答えて

1

この行は:

sheet.getRange(2, values[0].length, values.length, 1).setValue(units); 

sheet.getRange(2, values[0].length, values.length, 1).setValues(units); 

setValue対違いsetValuesdocumentationであるべき

はここで他の関数です。

+0

ありがとう@ジャックブラウン。私はこれを理解しようと30分以上かけて過ごしました。私は価値の最後に "s"を見逃したとは信じられません。再度、感謝します。 – Bokai

関連する問題