我正在尝试编写一个函数,该函数返回该函数所在工作表的索引号。
我有这个:
Function Sheet()
Sheet = ThisWorkbook.ActiveSheet.Index
End Function
我的工作簿中有多个工作表,它们都使用该函数,但都需要引用自己的特定工作表。一旦我更新一张工作表,就使用“activesheet”,所有其他工作表都会将其结果更改为该新工作表,而不是保留自己的工作表。
有没有办法将函数限制为仅限其所在的工作表?
最佳答案
在 Excel 2016、Excel 2013、Excel Online、Excel 2016 for Mac 中,您可以使用内置 Excel 函数:
=SHEET()
否则,请使用 chris neilsen 方法或类似的方法: Get sheet index number from cell reference (Function)
Function SheetNum(Optional celRef As Range) As Long
With Application.Caller.Parent
If celRef Is Nothing Then
SheetNum = .Index
Else
SheetNum = celRef.Parent.Index
End If
End With
End Function
建议:将 UDF 的名称从 Sheet
更改为 MySheet
之类的名称。
如果您想要一个公式来获取工作表的名称(而不是索引),您可以使用以下公式:
=REPLACE(CELL("filename"),1,FIND("]",CELL("filename")),"")
关于excel - 动态工作表索引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34541197/