Javascript Скрипт Google Apps с использованием переменных в нотации getRange A1 - PullRequest
0 голосов
/ 07 января 2020

Если я использую код Javascript в скрипте Google Apps, у меня возникает следующая проблема: если у меня есть код ниже, он работает, я могу скопировать строку 3 в строку 4 в SpreadsheetApp (Google Sheets), используя это:

function copyrow(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var x = 3;
var y = 4;
var RangeToCopy = ss.getRange("Sheet4!3:3");
RangeToCopy.copyTo(ss.getRange("Sheet4!4:4"));
}

Однако, если я изменю код для использования переменных в методе getRange (как показано ниже), он не будет работать. Это дает мне ошибку «Диапазон не найден (строка 16, файл« Код »)»

function copyrow(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var x = 3;
var y = 4;
var RangeToCopy = ss.getRange("Sheet4!x:x");
RangeToCopy.copyTo(ss.getRange("Sheet4!y:y"));
}

Как я могу использовать переменные в методах getRange или переменные для копирования некоторых данных из одного диапазона в другой ?

Заранее спасибо за помощь

1 Ответ

0 голосов
/ 07 января 2020

Вы можете попробовать так:

function copyrow(){
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var x = 3;
  var y = 4;
  //var RangeToCopy = ss.getRange("Sheet4!x:x");
  var RangeToCopy = ss.getRange(Utilities.formatString('Sheet4!%s:%s',x,x));
  //RangeToCopy.copyTo(ss.getRange("Sheet4!y:y"));
  RangeToCopy.copyTo(ss.getRange(Utilities.formatString('Sheet4!%s:%s',y,y)));
}

Вы также можете использовать этот подход:

RangeToCopy.copyTo(ss.getRange('Sheet4!' + y + ':' + y));

Примечание: использование этого подхода со столбцами типа «A: A» часто приводит к иметь нулевые значения от нижней части ваших данных до нижней части вашей страницы, что может быть неприятным удалением. Лично поэтому я избегаю этого в пользу getRange(row,column,numberofrows,numberofcols)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...