簡體   English   中英

Google Apps 腳本。 無法在范圍內設置值,因為數據中的行數與范圍內的行數不匹配

[英]Google Apps Script. Cannot set value in range because number of rows in the data does not match the number of rows in the range

任務是在特定范圍(變量“范圍” )中查找單詞“請求”,從匹配“請求”的行上的最近列中復制信息,然后將其粘貼到另一個范圍。

無法弄清楚如何在多個單元格中插入變量“offsetval1”的值。 似乎它返回 9 個值,但如果我使用Logger.log(offsetval1.length);進行檢查它返回1.0。 但是,有 9 行具有不同的值(查看屏幕截圖)。

如何在這 9 行的范圍內輸入“offsetval1”的值?

function DocReq() {
  var ui = SpreadsheetApp.getUi();
  var result = ui.prompt("Please, enter Line Count"); // Prompt Input
  var line_count = result.getResponseText(); // Prompt Result (Number) as VAR
  var int_line_count = (+line_count); // Number as Integer
  var range_bottom = int_line_count-1; // Integer - 1 (Total Amount of Rows)

  var spreadsheet = SpreadsheetApp.getActive();
  var currect_cell = spreadsheet.getActiveCell().getRow(); // Row of Active Cell
  var int_current_cell = (+currect_cell); // Row as Integer (Top First Row)

  var main_range_bottom = int_current_cell+range_bottom; // Bottom Last Row
 
  var range = spreadsheet.getRange('L' + int_current_cell + ':' + 'L'+ main_range_bottom); // Get Range All !Requested!

  var find_rqst = range.createTextFinder('Requested').findAll(); // Creating Text Finder !Requested!

  for (var i = 0; i < find_rqst.length; i++) { // Finding Exceptionally !Requested!
    var arrayofreq = find_rqst[i];

    var offsetval1 = arrayofreq.offset(0, -4).getValues(); // Getting Values of !H! Column of All !Requested!
    Logger.log(offsetval1);
    }
    Logger.log(offsetval1.length);
    Logger.log(find_rqst.length);

  spreadsheet.getRange('K131:K139').setValues(offsetval1);
}

在此處輸入圖像描述

問題:

代碼的問題是offsetval1是在for循環內迭代定義的,因此它總是包含一個值,這就是長度為1的原因。 您實際上是用新內容覆蓋了以前的內容。

  • 嘗試將每個值存儲到數組中,然后改為set數組。

解決方案:

function DocReq() {
  var ui = SpreadsheetApp.getUi();
  var result = ui.prompt("Please, enter Line Count"); // Prompt Input
  var line_count = result.getResponseText(); // Prompt Result (Number) as VAR
  var int_line_count = (+line_count); // Number as Integer
  var range_bottom = int_line_count-1; // Integer - 1 (Total Amount of Rows)

  var spreadsheet = SpreadsheetApp.getActive();
  var currect_cell = spreadsheet.getActiveCell().getRow(); // Row of Active Cell
  var int_current_cell = (+currect_cell); // Row as Integer (Top First Row)

  var main_range_bottom = int_current_cell+range_bottom; // Bottom Last Row
 
  var range = spreadsheet.getRange('L' + int_current_cell + ':' + 'L'+ main_range_bottom); // Get Range All !Requested!

  var find_rqst = range.createTextFinder('Requested').findAll(); // Creating Text Finder !Requested!
  var offsetval1 = []; // Modified code

  for (var i = 0; i < find_rqst.length; i++) { // Finding Exceptionally !Requested!
    var arrayofreq = find_rqst[i];
    offsetval1.push([arrayofreq.offset(0, -4).getValue()]); // Modified code
    }

  spreadsheet.getRange('K131:K139').setValues(offsetval1);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM