Reputation: 11
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
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!
If anyone has same problem, try it.
Upvotes: 0
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