excel - 指向 Excel 中相对的其他工作表

标签 excel worksheet-function

我正在尝试找到一种方法,从单元格中获取位于当前工作表左侧(托盘下方)的工作表单元格中的数据。

我知道如何通过调用其他工作表

=Sheet1!A1

但现在我需要一些最好的解释

=Sheet[-1]!A1

有什么想法吗?

最佳答案

使用 Tab 键顺序作为计算的基本部分对于 Excel 计算来说是一种复杂且危险的方法。 Excel 提供了许多替代方案,您最好使用它们:

  1. 贝利萨留建议的简化版本是:=INDIRECT(A1 & "!A2"),其中单元格 A1 具有数据源工作表的名称,A2 具有目标单元格的名称在您的数据源表中。如果您知道感兴趣的工作表的名称(或可以通过某种方式查找),请使用此方法。

  2. 如果您需要经常执行此操作,您可能希望将数据导出到实际数据库(即 MS Access)中。然后您可以进行标准 SQL 查询并将结果导入到 Excel 文件中。

  3. 如果您绝对想走 VBA 路线,那么您必须编写一些代码:
    3a.获取事件工作簿的所有名称并将它们存储在数组中。
    3b.标识该数组中当前事件工作簿的索引号。从该索引中减去 1 以使工作表位于左侧。
    3c.从该工作表中获取单元格值。

  4. 您还可以对命名范围感到奇怪。在 Excel 2003 中,转到插入->名称->定义,添加新的命名范围,您可以在计算中使用该名称,而不是按行和列引用单元格。

编辑

The whole Idea with this one, is that you have the Sheets arranged, and are able to move them around, and that shall change the calculations. – Gnutt 1 hour ago

拜托,拜托,不要这样做。对于初学者来说,这不是与电子表格交互的标准方法。您的最终用户可能会感到困惑,甚至可能不会要求澄清。

您将想要探索数据验证的想法:

  1. 使用数据->验证,创建一个下拉菜单,列出工作簿中的所有工作表(如果所有工作表的名称都是静态的,则可以对它们进行硬编码,否则,您将将需要一些 VBA 来拉动它们)。
  2. 然后用户只需选择他们选择的工作表,indirect() 就会自动更新所有内容。

或者,您也可以查看工具->方案。我不知道有谁使用此功能,但您可能是一个很好的人选。基本上,它可以让您查看使用不同数据集(即“场景”)的计算结果,以便用户可以在它们之间来回切换。

使用上述 2 种方法中的任何一种,您很有可能完全避免使用 VBA,从而避免用户在打开文件时看到烦人的警告消息。

关于excel - 指向 Excel 中相对的其他工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4053772/

相关文章:

java - 从 Servlet 下载 Excel

python - 自动为每个文件夹创建数据框

excel - 如果列包含给定数字 X 次,则突出显示单元格

excel - 两个日期之间的 IF/AND 条件格式

c# - Excel公式T.INV计算错误使用C#

excel - 复制以前工作的行的宏,现在不工作但没有错误消息?

excel - 代码在 .vbs 文件中运行良好,但在 UFT 脚本中运行不佳 - 错误 429

excel - VBA:分配给对象的宏,当单击以执行操作时,它会进入代码并触发 - 参数数量错误或属性分配无效

excel - Excel 中基于单元格引用引用另一个 Excel 文件的公式

Excel - 从单元格范围创建图表,同时排除空值?