【问题标题】:How to loop getRange("B" + row + " :" + "J" + row) in google sheet editor script如何在谷歌工作表编辑器脚本中循环 getRange("B" + row + " :" + "J" + row)
【发布时间】:2019-11-04 15:48:18
【问题描述】:
function onEdit(evt) {

var range = evt.range;

showAutoValue(range);

}

function showAutoValue(range){

  var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();

  var activeSheet = spreadSheet.getActiveSheet();

  var row = range.getRow();

  var column = range.getColumn();

  if(column == 1 && row >= 1){

    var Avalue = activeSheet.getRange("A" + row).getValue();

    var B_Jrange = activeSheet.getRange("B" + row + ":" + "J" + row);

    if(String(Avalue).trim()){
      for(var i = 0; i < B_Jrange.length; i++){
        if(String(B_Jrange[i].getValue()).trim().toLowerCase() == "change moi"){
          B_Jrange[i].setBackground(Avalue);
        }
      }
    }
  }

}

【问题讨论】:

  • 您能否阅读How to Ask a Question 以帮助您提高问题的详细程度。
  • var B_Jrange = activeSheet.getRange(row,2,1,9);var Avalue = activeSheet.getRange(row,1).getValue(); 怎么样

标签: loops google-apps-script google-sheets google-sheets-macros


【解决方案1】:

使用 onEdit() 选择和突出显示范围

好的,我想了更多,我决定将 columnA 设置为白色、黄色、浅绿色、浅蓝色的数据验证列表,因为您必须记住,要生成 onEdit 触发器,您必须实际更改一些内容。因此,在这种情况下,您要将范围 e.range.getSheet().getRange(e.range.rowStart,2,1,8) 的背景颜色更改为在该行的 A 列中选择的值。所以不需要循环来完成这个。

function onEdit(e){
  var sh=e.range.getSheet();
  if(e.range.columnStart==1){
    if(String(sh.getRange(e.range.rowStart,1).getValue()).trim()){
      sh.getRange(e.range.rowStart,2,1,8).setBackground(sh.getRange(e.range.rowStart,1).getValue()); 
    }else{
      sh.getRange(e.range.rowStart,2,e.range.rowEnd,8).setBackground('white').getValue(); 
    }
  }
}

如果您选择所有 A 列并点击返回,此版本还会清除整个范围,它将 A 列设置为无选择,并且 if/else 语句的第二部分清除整个范围的背景。

【讨论】:

  • 不,这不是我想要的......我想知道如何浏览变量 B_Jrange 选择的单元格......没有浏览值
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-29
  • 1970-01-01
相关资源
最近更新 更多