Is it possible for:
- a set of checkboxes to recognise lists (grouped in one cell) on entry (via formula)
- to then have the same checkboxes copy the list to another cell as it returns "TRUE"
Currently the below is entered in Scripts though only does the latter.
I am hoping to find a solution that allows the checkboxes to do both.
function onEdit(e) {
const sheet = e.range.getSheet();
if (sheet.getName() !== 'Sheet1' || e.range.columnStart < 3 || e.range.columnEnd > 3 || !String(e.value).match(/^(true)$/i)) {
return;
}
const valueToCopy = sheet.getRange(e.range.rowStart, 2).getValue();
const targetRange = sheet.getRange(e.range.rowStart, e.range.columnStart + 5);
targetRange.setValue(valueToCopy);
}
Please see the Sample Sheet attached for a more detailed explanation.
Best Answer
You are trying to use a checkbox to copy values in a given column on Sheet2 to a given column on the same sheet as the checkbox (Sheet1).
You have already written a script to copy data from a cell (based on a formula) on the checkbox sheet (Sheet1).
The following script uses a checkbox on Sheet1 to copy data from Sheet 2 to Column H/same row as the checkbox on Sheet1.
columnToLetter(column)
) is used to establish the equivalent column letter.var colvals = sourcesheet.getRange(colletter + sourcestartrow+":" + colletter).getValues();
andvar collast = colvals.filter(String).length;
..join("\n")
is used to convert the array to a single value. in this case"\n"
is a carriage return which enables each value to appear on a separate line within the cell.