Reputation: 43
The following code is not working when I put a value with space in editedCellValue
function onEdit(e) {
var editedCellRange =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test").getActiveRange();
var editedCellValue =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("test").getActiveRange().getValue;
if (RegExp(editedCellValue).test("\s")==true){editedCellRange.setValue("contains space")}
else
{editedCellRange.setValue("ELSE IF")}
}
Please help with why this is not working.
thanks.
Upvotes: 4
Views: 541
Reputation: 201503
test
, please modify to (/\s/g).test(editedCellValue)
.includes
like editedCellValue.includes(" ")
. And also, indexOf
can be used.var editedCellValue = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("test").getActiveRange().getValue;
doesn't retrieve the value because getValue
is not run. Please add ()
like getValue()
.SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test")
.When above points are reflected to your script, it becomes as follows.
function onEdit(e) {
var range = e.range;
if (range.getSheet().getSheetName().toLowerCase() != "test") return;
var editedCellValue = range.getValue();
if ((/\s/g).test(editedCellValue)) { // or if (editedCellValue.includes(" ")) {
range.setValue("contains space")
} else {
range.setValue("ELSE IF")
}
}
onEdit
is automatically run by the OnEdit trigger. And, in your script, the edited cell is overwritten. Please be careful this.If you want to directly run the function with the script editor, please modify above script as follows.
From
var range = e.range;
if (range.getSheet().getSheetName().toLowerCase() != "test") return;
To
var range = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test").getActiveRange();
Upvotes: 1