Можно ли использовать ссылку на ячейку в качестве позиции строки / столбца в getRange ()? - PullRequest
1 голос
/ 03 марта 2020

Я пытаюсь создать в инвентаре электронных таблиц кнопку, которая бы быстро добавила нужный элемент в правый столбец моего инвентаря. У меня есть лист, посвященный этой кнопке, где вы выбираете продукт для добавления в инвентарь, затем нажимаете GO, и ваш товар попадает в один из 10 столбцов моего инвентаря (в зависимости от того, какой товар), а также количество и номер тега Выборы в списке связаны с количеством предметов на поддоне для полного поддона и номером строки, в котором они должны go в инвентаре на столе на другом листе. Я использую функцию фильтра, чтобы отобразить обе эти данные на листе кнопок, чтобы при нажатии кнопки отображаемая информация копировалась в инвентарь с использованием этой строки сценария:

 var destSheet = ss.getSheetByName("Fiche");
 var lastRow = destSheet.getLastRow();
 var source = ss.getRange ('A3');
var destColumn = ss.getRange ('B15');

source.copyTo(destSheet.getRange(lastRow + 1, destColumn), {contentsOnly: true}); 

Где A3 - мое количество продукт на полном поддоне, а B15 - это столбец, в который он должен быть скопирован. Кажется, что использование переменной lastRow нормально для присвоения getRange позиции в строке, но переменная destColumn не работает для позиции столбца. Это работает только тогда, когда я заменяю его постоянным числом. Я думаю, тип данных, возвращаемых из getLastRow и getRange, не совпадают? любой совет?

1 Ответ

0 голосов
/ 04 марта 2020

Вы очень близки к решению. Вам нужно только добавить .getValues() в конце var destColumn = ss.getRange ('B15');, чтобы он читал число внутри ячейки (потому что метод .getRange(), используемый позже, работает с целыми числами, как подробно здесь ). Конечный результат должен выглядеть так:

function myFunction() {
  /*var ss = SpreadsheetApp.openById(
    "{SPREADSHEET ID}");*/
  var destSheet = ss.getSheetByName("Fiche");
  var lastRow = destSheet.getLastRow();
  var source = ss.getRange('A3');
  var destColumn = ss.getRange('B15').getValues();

  source.copyTo(destSheet.getRange(lastRow + 1, destColumn), {
    contentsOnly: true
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...