Скрипт Google Apps, заменяющий текст - PullRequest
1 голос
/ 17 октября 2019

У меня есть лист Google, который в столбце AI должен заменить текст при нажатии кнопки на NONE. У столбца есть заголовки в нескольких разных строках, которые должны оставаться неизменными. Я написал следующий скрипт:

function part() {
var sheet = SpreadsheetApp.getActive().getSheetByName('Builder');
  sheet.getRange('A12').setValues([['NONE']])
  sheet.getRange('A15:A16').setValues([['NONE']])
  sheet.getRange('A19:A22').setValues([['NONE']])
  sheet.getRange('A25:A30').setValues([['NONE']])
  sheet.getRange('A33:A36').setValues([['NONE']])
  sheet.getRange('A39:A42').setValues([['NONE']])
  sheet.getRange('A45:A52').setValues([['NONE']])
  sheet.getRange('A55:A59').setValues([['NONE']])
  sheet.getRange('A62:A66').setValues([['NONE']])
}

При попытке запустить скрипт я получаю следующую ошибку: Количество строк в данных не соответствует количеству строк в диапазоне. У данных есть 1, но у диапазона есть 2.

Я знаю, что это связано со строками, имеющими больше столбцов, чем другие строки, но не уверен, как исправить код.

1 Ответ

1 голос
/ 17 октября 2019

Заполнение диапазонов одного столбца данными

function part() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('Builder');
  var rangeA=["A12","A15:A16","A19:A22","A25:A30","A33:A36","A39:A42","A45:A52","A55:A59","A62:A66"];
  rangeA.forEach(function(A1){
    var rg=sheet.getRange(A1);
    var vA=rg.getValues();
    vA.forEach(function(r){
      r[0]="NONE";
    })
    rg.setValues(vA); 
  })
}

Это будет сделано для любого диапазона размеров:

function part() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('Builder');
  var rangeA=["A12","A15:A16","A19:A22","A25:A30","A33:A36","A39:A42","A45:A52","A55:B59","A62:A66"];
  rangeA.forEach(function(A1){
    var rg=sheet.getRange(A1);
    var vA=rg.getValues();
    vA.forEach(function(r){
      for(var i=0;i<r.length;i++) {
        r[i]="NONE";
      }
    })    
    rg.setValues(vA) 
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...