使用相对引用查找工作表的表单名称

我试图在一个页面上生成3个列表,显示A:使用间接公式和连接(例如:INDIRECT(“'”&B2&“'!A2”)的前3天表单的范围,其中B2表示等于t的名字,但我需要把前一天的名单(例如:10-17)拉到B2单元格中。

我有一个工作函数,可以通过相对位置find另一个工作表中的单元格的值,但我似乎无法通过相对位置获取工作表名称。

Function NextSheet(rCell As Range) Application.Volatile Dim i As Integer i = rCell.Cells(1).Parent.Index NextSheet = Sheets(i + 3).Range(rCell.Address) End Function 

另一个函数可以返回工作表的工作表名称:

 Function SheetName(rCell As Range, Optional UseAsRef As Boolean) As String Application.Volatile If UseAsRef = True Then SheetName = "'" & rCell.Parent.Name & "'!" Else SheetName = rCell.Parent.Name End If End Function 

但我似乎无法一起使用它们(即:NextSheet(SheetName(A2))或SheetName(NextSheet(A2))是否有一个类似的函数,我可以用来返回表的名称的相对位置?

第二个问题:我能不能在另一个用户创build的函数里面调用一个用户创build的函数,还是只是没有正确的设置来相互调用呢?

第1部分:
您可以使用Excel为Sheets对象创build的索引。

没有错误陷阱:

 Sheets(ActiveSheet.Index + 1).Name 'or Sheets(Sheets("Sheet1").Index + 1).Name 

您将不得不处理在最后一张纸上进行这种操作的情况(错误9:下标超出范围)

第2部分:
是的,电话可以嵌套。 从一个返回值将被传递到下一个,所以像foo(bar(test(5)))函数是有效的