user3616174
user3616174

Reputation: 11

How to set function clearContent() for single cell?

I just wondered why clearContent() function does not work very well in new google spreadsheet!

 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()}
}

When I used old google spreadsheet, it worked. But I'm using new google spreadsheet. It doesn't work. getRange('A1:A2').clearContent(); is works. But getRange(1,2).clearContent(); not work, even though it did work in old google spreadsheet! Please do not tell me use old google spreadsheet. Tell me how!!

Upvotes: 1

Views: 2857

Answers (2)

user3616174
user3616174

Reputation: 11

Thank you for your kind answer.

But I found what the problem is.

In the new google spreadsheet function clearContent() doesn't wotk because of 'data validation'!

So I set remove data validation function and clearcontent, finally, set same data validation in active cell.

It works!

  1. Remove data validation.
  2. Clearcontent.
  3. Set data validation.

If anyone has same problem, try it.

Upvotes: 0

Bryan P
Bryan P

Reputation: 5051

I don't even see a .getActiveSelection() method in the ss class. Don't see what you're doing with var range either. We can just use the passed ss object e to get the range, then clear it when needed.

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();
  } 
}

Upvotes: 1

Related Questions