如何为单个单元格设置clearContent()函数?

时间:2014-05-08 21:43:12

标签: google-apps-script google-sheets

我只是想知道为什么clearContent()函数在新的Google电子表格中效果不佳!

 function onEdit(event) {

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var sheet = ss.getSheets()[0];

  var range = sheet.getRange("A:L");

  var cell = ss.getActiveSelection();

  var row = cell.getRow();

  var column = cell.getColumn();

  var range2 = sheet.getRange(row,column);

  var response = Browser.msgBox('Did you confirm it?', Browser.Buttons.YES_NO);

  if(response == 'yes'){Browser.msgBox('Thank you!', Browser.Buttons.OK)}

    else{range2.clearContent()}
}

当我使用旧的谷歌电子表格时,它有效。 但我正在使用新的Google电子表格。它不起作用。 getRange(' A1:A2')clearContent();是作品。 但getRange(1,2).clearContent();不工作,即使它在旧的谷歌电子表格中工作! 请不要告诉我使用旧的谷歌电子表格。 告诉我怎么做!!

2 个答案:

答案 0 :(得分:0)

我甚至没有在ss类中看到.getActiveSelection()方法。 不要看看你在var range做了什么。 我们可以使用传递的ss对象e来获取范围,然后在需要时清除它。

function onEdit(e) {
  var range = e.range;
  var response = Browser.msgBox('Did you confirm it?', Browser.Buttons.YES_NO);
  if ( response == 'yes' ) {
    Browser.msgBox('Thank you!', Browser.Buttons.OK);
  }
  else {
    range.clearContent();
  } 
}

答案 1 :(得分:0)

谢谢你的回答。

但我发现了问题所在。

在新的Google电子表格功能中,clearContent()因为“数据验证”而无法使用!

所以我设置了删除数据验证功能和clearcontent,最后在活动单元格中设置相同的数据验证。

有效!

  1. 删除数据验证。
  2. Clearcontent。
  3. 设置数据验证。
  4. 如果有人遇到同样的问题,请尝试。