我希望将突出显示颜色的单元格移动到不同 sheet

I'm looking to move cells with color highlighted to different sheet

我希望将以特定颜色突出显示的单元格复制到一列中的不同 sheet。

示例文档:https://docs.google.com/spreadsheets/d/1Xa_WKlmHO5mT688zM0O-LXlqnSbITG2YK1uLPq5XzcA/edit#gid=328987545

你能帮我写脚本以获得所需的输出吗?

我相信你的目标如下。

  • 您想检索突出显示的单元格的值(从您提供的 Spreadsheet,它是 #ffff00),并想将这些值放入目标 sheet.
  • 您想使用 Google Apps 脚本实现此目的。

在这种情况下,下面的示例脚本怎么样?

示例脚本:

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);
}
  • 当此脚本为 运行 时,将从源 sheet 的突出显示单元格中检索值。并且,检索到的值被放入目标 sheet.
  • 的列“A”
  • 根据您的示例 Spreadsheet,目标 sheet 具有突出显示的单元格。所以,我添加了 setBackground(checkColor)。如果不想设置颜色,请去掉。

参考文献: