使用脚本通过自定义菜单单击刷新单元格中的公式,而不是单独单击单元格刷新单元格中公式



当前,当我将新数据表导入模板工作表时,我必须不断单击具有=query()公式的单个单元格,以刷新单元格的公式。

这应该是如何工作的,用户每次都制作一份模板表的副本,并导入一个新的数据表;报告概述";选项卡。

代替用CCD_ 2点击到单个细胞中;激活"/"刷新";这些单元格中的公式,是否有一个可以与自定义菜单一起使用的脚本,这样用户只需点击菜单按钮,就可以将A2和B2这样的特定单元格"设置为";刷新";总共

模板(谷歌表单(-https://docs.google.com/spreadsheets/d/11JZMo-cgTCTPx9U6SYwDX7L26kpsQ5YDQH-IuW_3TY8

数据表(.xlsx/.xls(-https://docs.google.com/spreadsheets/d/1IprKWqX1OolT1k6x3OClFjMOHd1LIpsc

没有任何脚本。。。

  • 在A1中添加一个选项卡和一个复选框
  • B2=iferror(QUERY(indirect("Pets!A2:D11"),"SELECT A WHERE B>5"),refresh!$A$1)
  • 在C2=iferror(QUERY(indirect("Pets!A2:D11"),"SELECT C WHERE D>5"),refresh!$A$1)

要激活所有公式,请选中/取消选中A1*中的框

你也可以通过一个简单的脚本来做到这一点

function refresh() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('refresh')
sh.getRange('A1').setValue(!sh.getRange('A1').getValue())
}

编辑:通过脚本的基本方法是清除单元格,然后通过脚本重新构建公式

将其添加为脚本:

function onOpen() {
SpreadsheetApp.getUi().createMenu("Refresh Formulae").addItem("Refresh", "refresh").addToUi()
}
function refresh() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const sheet = ss.getSheetByName("report overview")
const range = sheet.getRange("A2:B2")

range.setFormulas(range.getFormulas())
}

Rundown:

  • 打开时,创建一个菜单项以刷新公式
  • 一旦获得授权并运行,将重新设置A2和B2中的公式

参考文献:

  • getFormulas()
  • setFormulas()

最新更新