Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
Google sheets 如何突出显示(标记)google工作表中的活动行?_Google Sheets - Fatal编程技术网

Google sheets 如何突出显示(标记)google工作表中的活动行?

Google sheets 如何突出显示(标记)google工作表中的活动行?,google-sheets,Google Sheets,条件格式对此没有帮助。我尝试了许多在线发布的脚本,但没有一个是有效的 这里也有同样的问题:答案: 不幸的是,这是不可能做到的 更多信息: thids无法完成的主要原因是,当工作表上的活动单元格发生更改时,Sheets API或Google Apps脚本都有侦听器。也没有clicker或button press侦听器,如果单击或按下按钮,则不要对工作表进行编辑或更改。 测试与推理: 我把应用程序脚本弄得一团糟,想看看是否可以创建一些解决方案,尽管最后遇到了其他障碍 有一种方法可以使活动行的背景改变

条件格式对此没有帮助。我尝试了许多在线发布的脚本,但没有一个是有效的

这里也有同样的问题:

答案: 不幸的是,这是不可能做到的

更多信息: thids无法完成的主要原因是,当工作表上的活动单元格发生更改时,Sheets API或Google Apps脚本都有侦听器。也没有clicker或button press侦听器,如果单击或按下按钮,则不要对工作表进行编辑或更改。

测试与推理: 我把应用程序脚本弄得一团糟,想看看是否可以创建一些解决方案,尽管最后遇到了其他障碍

有一种方法可以使活动行的背景改变颜色,这可以在应用程序脚本中轻松完成,例如:

var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getActiveSheet();
var currRow=ss.getActiveCell().getRow();
sheet.getRange(currRow+):“+currRow).setBackground(“#F4C2C2”);
知道了这一点,并且知道我不能仅仅通过单击来调用触发器,因此我创建了一个Sheets插件,它在HTML文档中嵌入了一个JavaScript函数,该函数在特定的时间间隔调用Apps脚本方法:


函数poll(){
设置间隔(更新,500);
}
函数更新(){
google.script.run.rowHighlighter();
}
使用
code.gs
文件中的以下
rowHighlighter()
函数:

函数行高亮显示(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getActiveSheet();
var currRow=ss.getActiveCell().getRow();
var l=PropertiesService.getUserProperties().getProperty(“currRow”);
如果(l){
表1.getRange(l+):“+l).setBackground(#FFFFFF”);
} 
sheet.getRange(currRow+):“+currRow).setBackground(“#F4C2C2”);
PropertiesService.getUserProperties().setProperties({“currRow”:currRow});
}
我认为可以从Sheets插件的侧边栏中调用此函数,并使用应用程序脚本的
PropertiesService
类来存储当前选定的行,以便在别处单击时可以重置颜色

虽然这似乎有积极的结果,但这只持续了几秒钟-不幸的是,在此之后,应用程序脚本配额被命中,并且控制台中的错误(从应用程序脚本编辑器端可以看到)表明需要进行一些限制,因此不会发出太多的应用程序脚本请求。当然,虽然这是可以做到的,但是增加在附加组件
中调用
update()
函数的间隔会降低应用程序的实时性,并且整个功能会中断

简言之;这是办不到的。Apps脚本和Sheets API都缺乏这一功能,试图自己构建一个能够模拟它的东西,最终会导致你在达到帐户限制时使用所有配额

我知道这通常是个坏消息,但我希望这对你有帮助

参考资料:

突出显示单击鼠标的单元格的行和列:

function onSelectionChange(e) {

  const range = e.range;
  const sheet = range.getSheet();
  const maxRows = sheet.getMaxRows();
  const maxColumns = sheet.getMaxColumns();
 
sheet.clearConditionalFormatRules();  
var formula = '=A1<>"1239"'; 
  
//---------------------------------------------------------------  
//RULE1  
var range1 = sheet.getRange(range.getRow(), 1, 1, maxColumns);
var rule1 = SpreadsheetApp.newConditionalFormatRule()
    .whenFormulaSatisfied(formula)
    .setBackground('lightgray')
    .setBold(true)
    .setRanges([range1])
    .build();
var rules1 = sheet.getConditionalFormatRules();
rules1.push(rule1);
sheet.setConditionalFormatRules(rules1);
//--------------------------------------------------------------- 
//RULE2
var range2 = sheet.getRange(1, range.getColumn(), maxRows, 1);
var rule2 = SpreadsheetApp.newConditionalFormatRule()
    .whenFormulaSatisfied(formula)
    .setBackground('lightgray')
    //.setBold(true)
    .setRanges([range2])
    .build();
var rules2 = sheet.getConditionalFormatRules();
rules2.push(rule2);
sheet.setConditionalFormatRules(rules2);  
  
}
选择更改功能(e){
常数范围=e范围;
const sheet=range.getSheet();
const maxRows=sheet.getMaxRows();
const maxColumns=sheet.getMaxColumns();
sheet.ClearConditionalFormatures();
变量公式='=A1“1239”;
//---------------------------------------------------------------  
//规则1
var range1=sheet.getRange(range.getRow(),1,1,maxColumns);
var rule1=SpreadsheetApp.newConditionalFormatRule()
.当满足公式时(公式)
.setBackground(“浅灰色”)
.setBold(真)
.setRanges([range1])
.build();
var rules1=sheet.getConditionalFormatures();
规则1.推送(规则1);
表.设置条件格式(规则1);
//--------------------------------------------------------------- 
//规则2
var range2=sheet.getRange(1,range.getColumn(),maxRows,1);
var rule2=SpreadsheetApp.newConditionalFormatRule()
.当满足公式时(公式)
.setBackground(“浅灰色”)
//.setBold(真)
.setRanges([range2])
.build();
var rules2=sheet.getConditionalFormatures();
规则2.推送(规则2);
表.设置条件格式(规则2);
}

我可以问一下突出显示的
是什么意思吗?
在活动行上标记或应用条件格式,以便用户可以专注于数据密集的工作表中的位置。这是同一个问题,但有更好的解释:不可能……非常感谢您的时间和精力。请避免使用“没那么难”之类的备注-如果不难的话,OP不会问的。显然对他们来说这很难,我们是来帮助他们的,而不是让他们感觉不好