【发布时间】:2020-05-07 14:04:12
【问题描述】:
我编写了一个脚本来通过 for 循环变量查找给定单元格的匹配项(效果很好)。注销时,它会在搜索的数据列中提供位置 11.0。然后我想要做的是取消选中从该引用单元格偏移 (0,-5) 的复选框。当我尝试使用偏移量时,我得到 TypeError: offset is not a function。我该如何做到这一点?
以下是我编写的用于解决我遇到问题的脚本。我正在做的是检查 Sheet2 上的一个框,该框与给定产品位于同一行。产品及其复选框所在的行并不总是相同的(可能是第 5 行,也可能是第 12 行)。选中该框后,脚本会确定产品的名称(在本例中为 Product 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-apps-script google-sheets offset indexof