如何更改数据范围 Google Sheets 脚本中的单个单元格

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

如下面的代码所示,我可以执行循环并从单元格中读取数据,但我不知道如何修改单个单元格。

function modifyDataInRange(){
  var range1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('MyData').getRange("A2:J300");
  var checkData = range1.getValues();
  var j = 0;
  while(checkData[j][0]!=""){
    if(checkData[j][1] == "Old Data"){
      checkData[j][1] = "New Data";         //this does not write to the cell
      range1.setValue("New Data");          //this writes to every cell in the range
    }
    j += 1;
  }
}

有没有办法做类似 range1.setvalue([j][1], "New Data") 的事情?

[更新] 根据库珀的回复,我创建了另一个变量作为工作表,现在我有一个工作表、一个范围和数据,并且我可以运行以下命令...但不确定我是否需要范围变量。

function modifyDataInRange(){
  var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('MyData');
  var range1 = sheet1.getRange("A2:J300");
  var checkData = range1.getValues();
  var j = 0;
  while(checkData[j][0]!=""){
    if(checkData[j][1] == "Old Data"){
      sheet1.getRange(j+2,1).setValue("New Data")
    }
    j += 1;
  }
}
google-sheets google-apps-script range cell
1个回答
0
投票

你也可以这样做:

function modifyDataInRange() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName('Sheet0');
  const rg = sh.getRange("A2:J12");
  const vs = rg.getValues();
  let o = vs.map(([a,b,c,d,e,f,g,h,i,j]) => (b == "Old Data") ? [a,"New Data",c,d,e,f,g,h,i,j] : [a,b,c,d,e,f,g,h,i,j]);
  rg.setValues(o);
}
© www.soinside.com 2019 - 2024. All rights reserved.