使用SheetName()数组从多个工作表中检索单元格以动态链接到每个工作表 [英] Retrieving a cell from multiple sheets using a SheetName() array to dynamically link to each sheet

查看:0
本文介绍了使用SheetName()数组从多个工作表中检索单元格以动态链接到每个工作表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个动态的、自动更新的Google电子表格,它可能会也可能不会超出规范。

目标:

我正在谷歌工作表中跟踪每月记录的辅导时间。每个月在Google Sheet工作簿中都有自己的工作表。为了制作一个新的月份,我只需复制最后一个月并删除内容。我有一个摘要表来跟踪每月记录的小时数,付款等。 我希望尽可能多地将此工作表自动化。

采取的方法:

我使用以下代码获取了一个数组,当我下个月添加另一个工作表时,该数组将自动更新。到目前为止,一切正常,如B栏所示:

function sheetnames() {
  var out = new Array()
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  for (var i=0 ; i<sheets.length ; i++) out.push( [ sheets[i].getName() ] )
  return out 
}

/*https://www.extendoffice.com/documents/excel/5222-google-sheets-get-list-of-sheets.html#a2*/

下一步是在每个工作表上获取特定的单元格。我可以手动输入每个工作表名称,然后链接就可以正常工作了。例如。‘2021年8月’!$E$35 dashboard page so far

什么不起作用:

但我正在尝试自动执行此过程。这意味着以上内容并不能解决问题。

以下是我尝试的内容。

=B10!$E$35

='B10’!$E$35

='(TO_TEXT(B10))’!$E$35

问题:

我显然不是程序员,但老天保佑,我现在尝到了滋味。因为我处理的是一个数组,所以我有问题吗?如何从数组中调用工作表名称,以使其行为...与工作表名称通常一样?我该如何补偿呢?我是否需要一段新的代码,以便按工作表收集特定单元格或单元格区域中的信息?此代码是否会使用";get";命令?

推荐答案

使用:

=INDIRECT(B10!$E$35)

但请注意,INDIRECT不适用于数组


这里有一个替代示例:

对所有工作表的E35求和,无论工作表是否存在,或者工作表是否在不久的将来创建

单元格A1:

=ARRAYFORMULA("=SUM({"&TEXTJOIN("; ", 1, 
 "IFERROR("&UNIQUE(TEXT(ROW(INDIRECT(1*"31/08/2021"&":"&1*(TODAY()+90))), 
 "mmmyyyy!E35"))&", """")")&"})")

脚本:

function onEdit() { 
var sheet = SpreadsheetApp.getActive().getSheetByName('Master Sheet');  
var src = sheet.getRange("A1");   // The cell which holds the formula
var str = src.getValue(); 
var cell = sheet.getRange("C5");  // The cell where I want the results to be
cell.setFormula(str);             // Setting the formula.
}

这篇关于使用SheetName()数组从多个工作表中检索单元格以动态链接到每个工作表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆