如何通过索引而不是名称引用 Excel 工作表?

如何通过索引而不是名称引用 Excel 工作表?

我很苦恼,我有一个 Excel 工作簿,里面有无数个工作表;每个工作表都有自己独特的、非连续的名称。我想使用它们的索引而不是名称来引用这些工作表。我该怎么做?

答案1

我找到了答案这里。它包括两个阶段:

阶段 1:编写一个通过索引获取工作表名称的函数

  1. 调出 VBA(Visual Basic for Applications)窗口(例如按Alt+ F11)。
  2. 插入一个新的代码模块(例如在菜单上:插入>模块)。
  3. 将出现新模块的子窗口。在文本区域中,插入以下代码:
    Function SHEETNAME(number As Long) As String
     SHEETNAME = Sheets(number).Name
    End Function
    
  4. 退出 VBA 窗口。

第 2 阶段:使用该SHEETNAME()函数

您可能希望现在能够编写如下公式:

=SHEETNAME(12).B3

不幸的是,这不起作用,因为 SHEETNAME() 返回的是字符串,而不是工作表。您需要使用 Excel 的间接查找功能,如下所示:

=INDIRECT("'"&SHEETNAME(12) &"'!B3")

这将是对工作簿中第 12 个工作表 B 行第 3 列单元格的引用。

笔记:工作表编号以 1 为基础。

相关内容