如何在谷歌脚本中使用indexOf获取参考单元格后使用偏移量。

问题描述 投票:0回答:1

我写了一个脚本,通过for循环变量找到一个给定单元格的匹配(效果很好)。 当注销时,它提供了搜索到的数据列中的位置11.0。 然后我想做的是取消选中一个复选框,该复选框与该引用单元格的偏移量为(0,-5)。 当我尝试使用offset时,我得到TypeError: offset is not a function。 我如何实现这个目标?

下面是我写的脚本,以达到我被卡住的地方。 我所做的是在Sheet2上选中一个框,它与一个给定的产品在同一行。 产品和它的复选框所在的行并不总是相同的(可能是第5行,也可能是第12行)。 一旦我选中了这个复选框,脚本就会确定产品的名称(在本例中,产品L),然后通过Sheet1上的indexOf来查找它的匹配。 IndexOf找到Sheet1上的位置(在本例中,11.0,即第13行,第10列)。 在Sheet1的第13行第5列有一个对应的复选框,然后需要取消复选。 这就是我被卡住的地方。 工作表是动态的,复选框和对应产品的行会不断变化。

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);
google-sheets offset indexof
1个回答
1
投票

你需要检索单元格的偏移量。

你可以通过指定单元格引用的行和列的位置或它的 A1 符号。

样本

var row=1;
var column = 11;
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange(row, column);
var newCell = cell.offset(0, -5);
© www.soinside.com 2019 - 2024. All rights reserved.