【发布时间】:2017-09-17 03:54:07
【问题描述】:
我正在为 Google Sheets 脚本编写一个函数,该函数将检查单元格中的某个值是否等于“Choice Cube”,如果返回 true,则覆盖该单元格。当前功能如下:
function removeCubeRewards(){
var ss2=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Rewards")
var range = ss2.getRange("F2:F20")
var data = range.getValues()
var conditional = 0
for(var i=0;i<data.length; i++){
if(data[i][0] == "Choice Cube"){
data[i][0] = "Reward Claimed"
conditional++
}
if(conditional == 6){
break;
}
}
range.setValues(data)
}
目前的设置方式是 range 将使用 data 中的值覆盖指定范围内的所有单元格。我的问题是,我的 Google 电子表格设置范围内的某些单元格具有这样的 if 条件:
=IF(E11="X","Choice Cube", "LOCKED")
这意味着当我执行 range.setValues(data) 时,这些 IF 条件将被当前显示的任何值覆盖。
我想知道我能做些什么,以便只有在
中匹配的单元格if(data[i][0] == "Choice Cube")
被覆盖。
【问题讨论】:
-
也许你应该使用
ss2.getRange(i+1,1).setValue('Reward Claimed');,然后根本不要使用 setValues()。
标签: google-apps-script google-sheets