Google apps script Google脚本-当H列具有特定颜色(黄色)时,将行复制到新工作表

Google apps script Google脚本-当H列具有特定颜色(黄色)时,将行复制到新工作表,google-apps-script,scripting,google-sheets,Google Apps Script,Scripting,Google Sheets,我已经尝试过这个脚本,但还没有开始工作 我需要一个脚本,它在名为Test的工作表中查看F列的背景色 如果F列中的单元格背景为黄色,则会将整行复制到名为“新建数据”的新工作表中 请查看随附的谷歌电子表格链接: 任何帮助都将不胜感激 function Extract(){ var ss = SpreadsheetApp.getActive(); var sheet = ss.getSheetByName('Test'); var rows = sheet.getDataRange();

我已经尝试过这个脚本,但还没有开始工作

我需要一个脚本,它在名为Test的工作表中查看F列的背景色

如果F列中的单元格背景为黄色,则会将整行复制到名为“新建数据”的新工作表中

请查看随附的谷歌电子表格链接:

任何帮助都将不胜感激

function Extract(){ 
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName('Test');
  var rows = sheet.getDataRange();
  var numRows = rows.getNumRows();
  var values = rows.getBackgrounds();
  var yellowColour = '#ffff00';
  var whiteColour = '#ffffff';


  var newSheet = ss.getSheetByName('New Sheet');

 for (var i = 0; i <= numRows - 1; i++) {

 var row = values[i];

   if (row[6] === whiteColour ) {  

   } 
     else {

       newSheet.appendRow(row);

     }

 } // End of For Loop
};
函数提取(){
var ss=SpreadsheetApp.getActive();
var sheet=ss.getSheetByName('Test');
var rows=sheet.getDataRange();
var numRows=rows.getNumRows();
var值=rows.getBackgrounds();
var YellowColor='#ffff00';
var whitecolor='#ffffff';
var newSheet=ss.getSheetByName('newSheet');

对于(var i=0;i请尝试此操作。它将创建一个行数组,其中F为黄色。它将清除“新数据”中的旧数据,并在新数组中复制:

function Extract(){ 
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName('Test');
  var lr=sheet.getLastRow()
  var data = sheet.getRange(2,1,lr,15).getValues();//get Test values
  var rows = sheet.getRange(2,6,lr,1).getBackgrounds();//get F background colors
  var yellowColour = '#ffff00';
  var newSheet = ss.getSheetByName('New Data');
  var lr1= newSheet.getLastRow()
  var newData=[] //new array
  for (var i = 0; i <= lr - 1; i++) {
    if (rows[i] == yellowColour ) {  //if F = yellow
       newData.push(data[i]) // add to new array
  }} 
   newSheet.getRange(2,1,lr1+1,15).clearContent()//clear old content excluding header row
   newSheet.getRange(2,1,newData.length,15).setValues(newData)//set new comtent
};
函数提取(){
var ss=SpreadsheetApp.getActive();
var sheet=ss.getSheetByName('Test');
var lr=sheet.getLastRow()
var data=sheet.getRange(2,1,lr,15).getValues();//获取测试值
var rows=sheet.getRange(2,6,lr,1).getBackgrounds();//获取F背景色
var YellowColor='#ffff00';
var newSheet=ss.getSheetByName(“新数据”);
var lr1=newSheet.getLastRow()
var newData=[]//新数组

对于(var i=0;i请尝试此操作。它将创建一个行数组,其中F为黄色。它将清除“新数据”中的旧数据,并在新数组中复制:

function Extract(){ 
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getSheetByName('Test');
  var lr=sheet.getLastRow()
  var data = sheet.getRange(2,1,lr,15).getValues();//get Test values
  var rows = sheet.getRange(2,6,lr,1).getBackgrounds();//get F background colors
  var yellowColour = '#ffff00';
  var newSheet = ss.getSheetByName('New Data');
  var lr1= newSheet.getLastRow()
  var newData=[] //new array
  for (var i = 0; i <= lr - 1; i++) {
    if (rows[i] == yellowColour ) {  //if F = yellow
       newData.push(data[i]) // add to new array
  }} 
   newSheet.getRange(2,1,lr1+1,15).clearContent()//clear old content excluding header row
   newSheet.getRange(2,1,newData.length,15).setValues(newData)//set new comtent
};
函数提取(){
var ss=SpreadsheetApp.getActive();
var sheet=ss.getSheetByName('Test');
var lr=sheet.getLastRow()
var data=sheet.getRange(2,1,lr,15).getValues();//获取测试值
var rows=sheet.getRange(2,6,lr,1).getBackgrounds();//获取F背景色
var YellowColor='#ffff00';
var newSheet=ss.getSheetByName(“新数据”);
var lr1=newSheet.getLastRow()
var newData=[]//新数组

对于(var i=0;我非常感谢Ed,非常感谢!太好了。如果这样做有效,请单击答案左侧的复选标记批准答案。谢谢。非常感谢Ed,非常感谢!太好了。如果这样做有效,请单击答案左侧的复选标记批准答案。Th脚踝。