【问题标题】:Google Spreadsheet Script - Dynamically change cell content based off currently selected cell?Google 电子表格脚本 - 根据当前选定的单元格动态更改单元格内容?
【发布时间】:2013-09-30 19:54:52
【问题描述】:

我最近开始使用 google 电子表格脚本,我想知道是否有办法根据当前选定的单元格更改单元格值?例如,如果显示行号的单元格在 A1 中并且用户突出显示 B8,则 A1 将显示“8”。这可能吗?

翻阅谷歌应用程序脚本电子表格服务页面,我注意到一个名为 .getActiveCell 的类,我认为这将是一个关键部分,但我有点迷失了。谁能指出我正确的方向?

感谢您的帮助。

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    这个小代码片段可以部分满足您的需要,但无法检测到简单的单元格选择,它仅在单元格内容被修改时触发。

    function onEdit(){
      var ss = SpreadsheetApp.getActive();
      var cell = ss.getActiveCell();
      ss.getRange('A1').setValue(cell.getA1Notation().replace(/[^0-9]/g, ''));// get A1 notation and rip off any non numeric value to keep only the row number
    }
    

    据我所知,没有直接的方法可以通过简单的点击或按键来获得选择。

    【讨论】:

    • 啊,我明白了。它使用基于最后编辑的单元格的公式设置单元格的值。我希望每一个新的单元格选择都会更新而不是编辑,但恐怕你是对的。我一直在浏览网络,看起来如果没有令人难以置信的骇人听闻,这是不可能的。不过,您的方法对于我正在尝试做的事情应该足够好。谢谢您的帮助!附言很抱歉没有投票给你。当我问这个问题时,我刚加入,显然我需要 15 声望才能投票给人们。
    • 接受就足够了 :-) 谢谢。你的权利,如果这是可能的,那就太好了......谁知道?也许有一天!
    • 是的,也许有一天。实际上,我会向谷歌提交一个请求。谁知道呢,也许他们会这么做。
    【解决方案2】:

    Google 电子表格脚本允许注册 onChange(e) 触发器:

    Installable Triggers

    function createSpreadsheetEditTrigger() {
      var ss = SpreadsheetApp.getActive();
      ScriptApp.newTrigger('myFunction')
          .forSpreadsheet(ss)
          .onChange()
          .create();
    }
    

    如果在选择选择时,我还没有尝试过。

    【讨论】:

      猜你喜欢
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 2017-01-20
      相关资源
      最近更新 更多