Reputation: 115
I'm looking to copy the cells highlighted in particular color to the different sheet in one column.
Sample doc: https://docs.google.com/spreadsheets/d/1Xa_WKlmHO5mT688zM0O-LXlqnSbITG2YK1uLPq5XzcA/edit#gid=328987545
Can you help me with the script to get desired output?
Upvotes: 1
Views: 121
Reputation: 201388
I believe your goal is as follows.
#ffff00
), and want to put the values to the column "A" of destination sheet.In this case, how about the following sample script?
function myFunction() {
const srcSheetName = "Sheet1"; // This is from your sample Spreadsheet.
const dstSheetName = "Ouput"; // This is from your sample Spreadsheet.
const checkColor = "#ffff00"; // This is from your sample Spreadsheet.
// Retrieve sheets.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const [src, dst] = [srcSheetName, dstSheetName].map(s => ss.getSheetByName(s));
// Retrieve source values and backgrounds.
const srcRange = src.getDataRange();
const backgrounds = srcRange.getBackgrounds();
// Create an array for putting to the destination sheet.
const values = srcRange.getValues().reduce((ar, r, i) => {
r.forEach((c, j) => {
if (backgrounds[i][j] == checkColor) {
ar.push([c]);
}
});
return ar;
}, []);
// Put the array to the column "A" of the destination sheet.
dst.getRange(1, 1, values.length).setValues(values).setBackground(checkColor);
}
setBackground(checkColor)
. If you don't want to set the color, please remove it.Upvotes: 2