How to Get the currently selected cell/range?是在3.5年前被问到的,但我希望自那以后可能会取得一些进展。
我想创建一个交互式电子表格,其中有一个布尔网格,它将显示有关静态位置中当前所选单元格状态的更多信息,允许用户使用箭头键快速导航。
引用此问题的上一个实例,我尝试使用下面的自定义函数来获取单元格地址,尽管这不是非常动态。
function currentCell() {
return SpreadsheetApp.getActive().getActiveRange().getA1Notation();
}
测试时,此函数返回调用函数的单元格的地址。我尝试按F5,同时突出显示另一个单元格,但没有任何反应。我还在选择中拖动了公式,每个单元格只包含自己的地址(根据文档,它应该包含范围)。
我还从2012年开始阅读Henrique's post on caching,虽然我并不完全理解它,但我发现我们无法获得没有编辑或手动公式更新的更新脚本。
理想情况下,除了箭头键导航或点击选择一个单元格之外,没有任何来自用户的额外提示要跟踪当前单元格,但如果按下非改动键(如Enter键)将允许跟踪,那就没问题了。如果这样可以使事情变得更容易,我也只需要选定的单元格,而不是范围。
显式问题:是否可以在Google表格中跟踪当前所选单元格的位置,并将该位置存储在单独的单元格中?如果没有,有没有办法在不改变单元格值的情况下执行此操作?
编辑:为清晰起见添加示例。在该概念示例中,如上所述的A2 =currentCell()
。如果我按下右箭头键,A2将更新以显示I4
,因为它现在是当前选择。
EDIT2:Jason Allshorn's response to Google app script monitor spreadsheet selected ranges似乎提供了一种在HTML输入文本上显示当前选择(范围)的方法。我想这样做,但是将值存储在工作表上的静态单元格中,而不是输入文本。我刚接触Sheets中的脚本,并且真的只知道我找到了解决这个问题的内容,所以如果我忽略了什么,请告诉我。我确实看过Jason的示例表,我不清楚那里到底发生了什么。
你将不得不应用How do I make a Sidebar display values from cells?上建议的技术。这包括使用客户端代码不断从电子表格中提取值,然后执行相应的任务。
一种方法是使用带有输入字段的侧面板来设置要跟踪的单元格,使用另一个输入字段来设置目标单元格。