javascript - 查找一列中的颜色并从另一列中获取数据

标签 javascript google-apps-script

我有一个如下所示的电子表格。

      A             B             C
7- Test                       [red]
8- Test1                      [yellow]
9- Test2                      [red] 

因此,我尝试在 C 列中传递一个循环,从 C7 开始。当它变为红色时,我应该能够从 A 列获取值,即 Test 和 Text2。

这是相关代码(它没有在if中输入)

SpreadsheetApp.getUi()   
var s = SpreadsheetApp.getActiveSheet();

var dataCor = s.getRange('C7:C').getBackgrounds();
Browser.msgBox(dataCor);                      //Here I show the codes from the colors.
var dataValor = s.getRange('A7:A').getValues();
Browser.msgBox(dataValor);                   //Here I show the values from the column A.

var list = [];
var n = 0;
var n2 = 0;

for(var i = 0; i < dataCor.length; i++)
{
 n = n + 1;

 if(dataCor == '#cc0000') 
 {  
  list[n2] = s.getRange('A7'+n-1).getValue();
  n2++;
 }
}  
Browser.msgBox(list);

PS:如果大家有什么建议,请告诉我。

PS1:请问一下,有没有什么函数可以忽略周末的数学计算?例如,如果我得到 2 月 22 日的日期,我知道应该忽略 20 和 21,这样人们就可以在 15 到 19 之间工作。无论如何,这与主题无关。

最佳答案

我同意@serge-insas,

我们可以使用相同的范围,而不是通过两个数组来获取背景和值。只是一个想法

function getValueByColor()
{
var s = SpreadsheetApp.getActiveSheet();
var myRange = s.getRange('A7:C');
var list = [];

for (var i = 1; i <= myRange.getNumRows(); i++) 
{
  // 3 -column c : 
  if(myRange.getCell(i,3).getBackground() == '#cc0000')
  {
    //1- column A
    list.push(myRange.getCell(i,1).getValue())
  }
}
//debugger;
Browser.msgBox(list);
}

关于javascript - 查找一列中的颜色并从另一列中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35391762/

相关文章:

javascript - 如何显示全文并在有 Angular Material 的菜单项中换行

javascript - 为什么这个 anchor 说 "search is not a function"?

javascript - 通过xsodata访问SAPUI5中的JSON对象

javascript - 捕获 JavaScript 中的异常

google-apps-script - 根据单元格值发送电子邮件

Javascript 合并 if 语句

google-apps-script - DocumentApp.getActiveDocument() 返回 null

javascript - jquery 选择具有父级类的第一个子级

javascript - getEventsForDay() 日期选择器返回值的格式问题

google-apps-script - HTML 服务在 V8 运行时不打开侧边栏