Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用相对引用查找工作表的工作表名称_Excel_Vba - Fatal编程技术网

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

Excel 使用相对引用查找工作表的工作表名称,excel,vba,Excel,Vba,我试图在一个页面上生成3个列表,其中显示前3天工作表的A:A范围,使用间接公式和连接(例如:间接(“'B2&'!A2”),其中B2等于t的名称,但我需要将前一天工作表的名称(例如:10-17)拉入单元格B2 我有一个工作函数,可以通过相对位置在另一个工作表中查找单元格的值,但我似乎无法通过相对位置获得工作表名称 Function NextSheet(rCell As Range) Application.Volatile Dim i As Integer i = rCel

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

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

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)),是否有类似的函数可以用于按相对位置返回图纸名称

第二个问题:我能不能在另一个用户创建的函数中调用一个用户创建的函数,或者它们只是没有正确地设置为在彼此内部调用?

第1部分:
您可以使用Excel对图纸对象的索引

无错误捕获:

Sheets(ActiveSheet.Index + 1).Name
'or
Sheets(Sheets("Sheet1").Index + 1).Name
您必须处理在最后一页上尝试此操作的情况(错误9:下标超出范围)

第二部分:
是的,调用可以嵌套。其中一个调用的返回值将传递到下一个调用,因此像
foo(bar(test(5))
这样的函数是有效的 您可以使用Excel对图纸对象的索引

无错误捕获:

Sheets(ActiveSheet.Index + 1).Name
'or
Sheets(Sheets("Sheet1").Index + 1).Name
您必须处理在最后一页上尝试此操作的情况(错误9:下标超出范围)

第二部分:

是的,调用可以嵌套。一个调用的返回值将传递到下一个调用,因此类似于
foo(bar(test(5))的函数
有效

当您使用下一页时,您希望返回什么?当前它将从引用返回第3页上的单元格值。并且您不能将值作为范围对象返回给Sheetname。当您使用下一页时,您希望返回什么?当前它将从引用返回第3页上的单元格值并且不能将值作为范围对象返回给Sheetname。这似乎可行,但如何初始化工作表(ActiveSheet.Index+1)VBA中的.Name?该函数返回一个字符串。不需要初始化。如果更适合您,您可以使用另一个工作表引用来代替
ActiveSheet
。这似乎可以工作,但如何初始化工作表(ActiveSheet.Index+1).Name在VBA中?函数返回字符串。不需要初始化。如果更适合您,您可以使用另一个工作表引用代替
ActiveSheet