繁体   English   中英

如何使用应用脚本删除特定的单元格?

[英]How to delete specific cells with app script?

我的意图是能够删除例如单元格F1,而不删除单元格F2。

var sheet = ss.getSheetByName("Questionário DQSA");  
  var range = sheet.getRange("B1:U1");
  range.clearContent();

在这里,我清除了这些单元格的内容,但是我想知道如何删除它们。

您可以使用Range.deleteCells(Dimension)

var sheet = ss.getSheetByName("Questionário DQSA");  
  var range = sheet.getRange("F1");
  range.deleteCells(SpreadsheetApp.Dimension.COLUMNS);//F2 becomes the new F1

如果要自己滚动:

function deleteCell(shift) {
  var shift=shift || "left"; //left or up
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var cell=ss.getActiveCell();
  if(shift=="left") {
    var rg=sh.getRange(cell.getRow(),1,1,sh.getLastColumn());
    var vA=rg.getValues();
    var row=vA[0];
    row.splice(cell.getColumn()-1,1);
    rg.clearContent();
    sh.getRange(cell.getRow(),1,1,row.length).setValues([row]); 
  }
  if(shift=="up") {
    var rg=sh.getRange(1,cell.getColumn(),sh.getLastRow(),1);
    var vA=rg.getValues();
    var row=vA.map(function(r){return r[0]});
    row.splice(cell.getRow()-1,1);
    var col=[];
    row.forEach(function(e){
      col.push([e]);
    });
    rg.clearContent();
    sh.getRange(1,cell.getColumn(),col.length,1).setValues(col);
  }
}

当然,现在我知道范围内的新方法,编写起来就容易得多。 感谢@TheMaster

function deleteCell(shift) {
  var shift=shift || "left";
  var ss=SpreadsheetApp.getActive();
  var cell=ss.getActiveCell();
  if(shift=="left") {
    cell.deleteCells(SpreadsheetApp.Dimension.COLUMNS);
  }
  if(shift=="up") {
    cell.deleteCells(SpreadsheetApp.Dimension.ROWS);
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM