Параметры (число []) не соответствуют сигнатуре метода для SpreadsheetApp.Range.setValues - PullRequest
0 голосов
/ 10 марта 2020

Я получаю следующую ошибку для последней строки моего кода скрипта Apps: «Исключение: параметры (число []) не соответствуют сигнатуре метода для SpreadsheetApp.Range.setValues. (строка 52, файл «TaskCompletionDate») »

Код выбирает диапазон электронной таблицы с помощью sheet.getDataRange () и, основываясь на определенных условиях, выбирает значения из этого диапазона в массив столбцов с именем Col8. После того, как массив Col8 полностью записан, я вставляю этот Col8 в свою электронную таблицу. Ошибка относится к этому шагу.

Сокращенная версия моего кода выглядит следующим образом:

var spreadsheet = SpreadsheetApp.openById("Spreadsheet_ID");
var sheet = spreadsheet.getSheetByName("Sheet_name"); 

var rows = sheet.getLastRow();  
var range = sheet.getDataRange();
var values = range.getValues();
var today = new Date();
var yesterday = new Date();
yesterday.setDate(today.getDate()-1);
var Col8 = new Array(rows-1,1);

for (var i=2; i<=rows; i++)
    {
          if (values[i-1][1] == "Completed") 
         {
           if (!values[i-1][8]) 
           Col8[i-1][1].setValue(values[i-1][1]);        
          }
      }

  sheet.getRange(2,8,rows-1,1).setValues(Col8);

Здесь можно увидеть столбцы электронной таблицы

enter image description here

Чего мне не хватает? Я не программист и не знаю JavaScript или «Сценарий приложений», но я создавал небольшие фрагменты «Сценарий приложений», используя документацию «Сценарий приложений» и другие ресурсы сценариев приложений на net.

1 Ответ

1 голос
/ 10 марта 2020

Это базовая c отправная точка. Но мне нужна информация из вашего изображения электронной таблицы, чтобы убедиться, что индексы верны. Я заметил, что вы создаете сегодня и вчера, но на самом деле вы ими не пользуетесь.

function myfunvtion() {
  var ss=SpreadsheetApp.openById("Spreadsheet_ID");
  var sh=ss.getSheetByName("Sheet_name"); 
  var rg=sh.getRange(2,1,sh.getLastRow()-1,sh.getLastColumn());
  var vs=rg.getValues();
  var today=new Date();
  var yesterday=new Date(today.getFullYear(),today.getMonth(),today.getDate()-1);
  var oA=[];
  for (var i=0; i<vs.length;; i++) {
    if (values[i][1]=="Completed" && !values[i][18]) {
      oA.push([vs[i][1]]);//it looks like your fixing something in your spreads        
    }
  }
  sh.getRange(2,8,oA.length,1).setValues(oA);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...