Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改/设置活动范围内每个单元格的背景色_Javascript_Html_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 如何更改/设置活动范围内每个单元格的背景色

Javascript 如何更改/设置活动范围内每个单元格的背景色,javascript,html,google-apps-script,google-sheets,Javascript,Html,Google Apps Script,Google Sheets,我试图改变每个单元格的背景色,但是使用了一些if语句。 我有一些代码可以对1个单元格执行此操作,但我希望它对所有活动单元格执行相同的操作 我的谷歌脚本代码: function changeColor(){ // Change the background color let colorRed = '#f23a53'; let colorOrange = '#f29f3a'; let colorGreen = '#7de396'; let actCell = SHE

我试图改变每个单元格的背景色,但是使用了一些if语句。 我有一些代码可以对1个单元格执行此操作,但我希望它对所有活动单元格执行相同的操作

我的谷歌脚本代码:

function changeColor(){
  // Change the background color
  let colorRed = '#f23a53';
  let colorOrange = '#f29f3a';
  let colorGreen = '#7de396';
  
  
  let actCell = SHEET.getActiveCell();
  let actData = actCell.getValue();
  
  if (Number.isInteger(actData)) {
    if (actData < 5) {
      actCell.setBackground(colorRed);
    } else if (actData < 9) {
      actCell.setBackground(colorOrange);
    } else if (actData == 9|| actData == 10) {
      actCell.setBackground(colorGreen);
    }
  } else {
    SHEET.getRange('D1').setValue(SpreadsheetApp.getActive().getActiveRange().getA1Notation()+" doesn't contain an integer.");
  }
}
函数changeColor(){
//更改背景色
设colorRed='#f23a53';
让colorOrange='#f29f3a';
让colorGreen='#7de396';
设actCell=SHEET.getActiveCell();
让actData=actCell.getValue();
if(编号isInteger(actData)){
如果(actData<5){
actCell.挫折背景(红色);
}否则如果(actData<9){
actCell.挫折背景(橙色);
}else if(actData==9 | | actData==10){
actCell.挫折背景(色绿色);
}
}否则{
SHEET.getRange('D1').setValue(SpreadsheetApp.getActive().getActiveRange().getA1Notation()+“不包含整数”);
}
}
我是否应该列出每个活动单元格,然后在其上循环并运行函数“changeColor”?
或者,是否有一种方法可以获取活动范围,并使用内置功能一次查看每个单元格?
谢谢您的时间。

要在包含多个单元格的活动区域上执行请求,请使用
getActiveRange()
而不是
getActiveCell()
这将返回一个二维范围,而不是单个单元格

相应地,您需要在该范围的单元格中循环,并验证您的条件是否满足

这个方法很有用

代码修改示例:

函数changeColor(){
//更改背景色
设colorRed='#f23a53';
让colorOrange='#f29f3a';
让colorGreen='#7de396';
let SHEET=SpreadsheetApp.getActive().getActiveSheet();
让actRange=SHEET.getActiveRange();
让actData=actRange.getValues();
var startRow=actRange.getRow();
var startColumn=actRange.getColumn();
var integer=false;
对于(变量i=0;i
如果要对多个单元格执行此操作,请使用
setBackgrounds
并相应地调整代码。但是,如果每个单元格都包含整数,我无法对其进行检查。