谷歌脚本表隐藏/取消隐藏

Posted

技术标签:

【中文标题】谷歌脚本表隐藏/取消隐藏【英文标题】:Google Scripts Sheets hide/ unhide 【发布时间】:2014-12-15 00:49:41 【问题描述】:

在为我的特定工作表编写“自定义函数”Google 脚本时,我只想隐藏一列:

function hideColumn(index) 
  // get active spreadsheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // get first sheet
  var sheet = ss.getSheets()[0];
  sheet.hideColumns(index);

当我从脚本编辑器中运行此代码时,它可以正常工作,但如果我尝试从单元格“=hideColumn(2)”中运行它,我会收到以下错误:

“您无权调用 hideColumns(第 48 行)。”

从同一个工作表/脚本中,我可以运行其他自定义函数,例如:

function metersToMiles(meters) 
  if (typeof meters != 'number') 
    return null;
  
  return meters / 1000 * 0.621371;

这似乎是从工作表内部运行的 hideColumns 函数的一些问题? (即自定义函数?)

【问题讨论】:

【参考方案1】:

您的脚本“hideColumn”不是自定义函数,而是“普通脚本”。它也不会返回任何东西(而第二个函数会)。只能像电子表格中的公式一样输入自定义函数。请参阅here 了解更多信息。我的建议是使用 onOpen 触发器创建一个额外的菜单项,以便您可以从(电子表格)菜单运行该功能。

希望有帮助吗?

【讨论】:

您好,感谢您的反馈。 'hideColumn' 是一个自定义函数,因为返回数据不是必需的。但是,您说得对,菜单项是唯一的解决方案。我没有从您发送的链接中注意到谷歌开发者页面上的这段话:“自定义函数不能影响除了它返回值的单元格之外的单元格。换句话说,自定义函数不能编辑任意单元格,只有调用它的单元格及其相邻单元格。要编辑任意单元格,请改用自定义菜单来运行函数。" 这就是问题所在:hideColumns() 将失败,因为它会影响其他单元格。

以上是关于谷歌脚本表隐藏/取消隐藏的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止某人取消隐藏我的 Excel 工作表?

excel中怎样批量取消隐藏工作表

隐藏的工作表会导致Google表格的导出工作表作为PDF网址的输出损坏

如何在 sublime-text 中隐藏和取消隐藏项目文件夹树

Excel(VBA)取消隐藏所有工作表

如何把excel隐藏的行显示出来