Как использовать смещение после получения ссылочной ячейки с помощью indexOf в Google Script - PullRequest
0 голосов
/ 07 мая 2020

Я написал сценарий, чтобы найти соответствие заданной ячейки с помощью переменной l oop (отлично работает). При выходе из системы он обеспечивает позицию 11.0 в искомом столбце данных. Затем я хочу снять флажок, который смещен на (0, -5) от указанной ячейки. Когда я пытаюсь использовать смещение, я получаю ошибку TypeError: смещение не является функцией. Как мне выполнить sh это?

Ниже приведен сценарий, который я написал, чтобы добраться до того места, в котором я застрял. Я устанавливаю флажок на Sheet2, который находится в той же строке для данного продукта. Строка, в которой находится товар и его флажок, не всегда будет одинаковой (может быть строка 5, может быть строка 12). Как только я устанавливаю этот флажок, сценарий определяет название продукта (в данном случае Product L), а затем ищет его соответствие с помощью indexOf на Sheet1. IndexOf находит местоположение на Sheet1 (в данном случае 11.0, это строка 13, столбец 10). В строке 13 на Листе 1 в столбце 5 есть соответствующий флажок, который затем необходимо снять. И вот где я застрял. Лист динамический c, а строки для флажков и соответствующих товаров будут постоянно меняться.

function findText() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet2 = spreadsheet.getSheetByName("Sheet2");
  var sheet1 = spreadsheet.getSheetByName("Sheet1");
  var lr = sheet1.getLastRow();
  var lookupRangeArray = sheet1.getRange(3,10,lr,1).getValues();
  var newRange = lookupRangeArray.map(function(r){ return r[0]; });    
 for (var i=0; i <= lr; i++){
   var checkboxRange = sheet2.getRange(i+1,2);
   var checkboxStatus = checkboxRange.getValue();
  if(checkboxStatus == true){  
   var text = checkboxRange.offset(0, 2).getValue();
   Logger.log(text);
   var position = newRange.indexOf(text);
   Logger.log(position)
   position.offset(0,-5).setValue(false);

1 Ответ

0 голосов
/ 07 мая 2020

Вам необходимо получить ячейку для смещения

Вы можете сделать это, например, указав позицию строки и столбца ссылки на ячейку или ее A1 обозначение.

Пример

var row=1;
var column = 11;
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange(row, column);
var newCell = cell.offset(0, -5);
...