【问题标题】:Simple function to display note on a cell Google Sheets在单元格 Google 表格上显示注释的简单功能
【发布时间】:2020-08-25 22:16:13
【问题描述】:

(已更新以消除早期的愚蠢错误!)

我正在尝试编写一个简单的函数来允许单元格带有标题,然后在便笺中包含其他信息,如下所示:

我现在的代码是:

function TEXTNOTE(celltext, notetext){
   setNote(notetext);
   return celltext;
   }

这会返回错误,因为未定义 setNote - 所以我假设我需要 [something].setNote - 但 [something] 应该是什么?

【问题讨论】:

  • 很抱歉,我认为您的setNote() 功能是为您放置便笺而创建的。但我认为现有答案将解决您的问题。
  • 出于文档目的,请接受对您帮助最大的答案。这将有助于未来的读者和社区。​​span>

标签: google-apps-script google-sheets custom-function


【解决方案1】:

解释:

我了解到您想使用自定义函数。但是,有以下限制:

setValue()setNote() 是需要的函数 用户授权,即您不能在其中调用他们 自定义函数(参见参考资料)。

解决方案:

  1. 您可以单击感兴趣的单元格,然后执行以下功能:

    function TEXTNOTE(){
    
    const celltext = "Cell title";
    const notetext = "Note text" ;
    const sheet = SpreadsheetApp.getActive().getActiveSheet();
    const cc = sheet.getCurrentCell();
    cc.setNote(notetext);
    sheet.getRange(cc.getA1Notation()).setValue(celltext);}
    
  2. 如果你想在脚本中指定单元格(比如 A1)并且你不想点击它,那么你可以运行以下命令:

    function TEXTNOTE(){
    
    const celltext = "Cell title";
    const notetext = "Note text" ;
    const sheet = SpreadsheetApp.getActive().getActiveSheet();
    const cc = sheet.getRange('A1');
    cc.setNote(notetext);
    cc.setValue(celltext);}
    

旁注:

  • 您可以通过点击执行上述功能 脚本编辑器中的播放按钮,或者您可以创建自定义 侧边栏菜单,可让您从 电子表格文件。

  • 如果你想迭代地执行这个任务,那么你需要 提供 titlesnotes 列表并运行循环以应用 这个操作对每个单元格。如果你想要celltext 的值 和notetext 要从您的脚本中检索,您将不得不 创建两个专用列来提供此信息。

示例:

参考资料:

来自official documentation

与大多数其他类型的 Apps 脚本不同,自定义函数从不询问 用户授权访问个人数据。因此,他们可以 仅调用无权访问个人数据的服务。

【讨论】:

  • 第一个版本返回两行文本,第二个版本报错(Error ReferenceError: setNote is not defined (line 2).)
  • 我更新了一个问题以显示我希望输出的内容。 setNote 是 Google Apps Script API 的一部分,它当然可以与 [cellreference].setNote("Note text") 一起使用。
  • 这更接近了,但我想看看是否有一些东西可以作为计算风格的函数运行 - 例如“note text”可能不是一个简单的字符串,所以我不想要用户必须单击它来更新它(鼠标悬停事件可能会起作用,但是工作表已经相当大,因此可能会减慢很多速度)。
  • @MattBowyer 你明白这是一个不同的问题。您现在需要提供 3 列。一列是title,第二列是note text,第三列是你想要编辑的单元格。如果您不想要这种结构,那么您必须在脚本本身中传递标题和注释文本。但这是另一个问题。
  • 我更新了答案,解决方案 2 不需要单击单元格。 @MattBowyer
猜你喜欢
  • 2018-05-23
  • 1970-01-01
  • 2020-03-08
  • 1970-01-01
  • 2020-09-27
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
  • 2020-03-03
相关资源
最近更新 更多