Home |
Search |
Today's Posts |
#1
|
|||
|
|||
Return number of current sheet
I'm looking for a way to create a function to return the current sheet youre
working in. Not its name (Ive found that function), but the number of the sheet. Example: if you have a total of 8 sheets, and youre working on the 3rd sheet, Id like to return the number 3 in a certain cell on the third sheet, 4 on the fourth sheet, 5 on the fifth sheet, etc., and have those numbers update if sheets are added or deleted. Is that possible? |
#2
|
|||
|
|||
One way:
Public Function SheetNum(Optional rng As Range) As Variant Application.Volatile If rng Is Nothing Then If TypeName(Application.Caller) = "Range" Then Set rng = Application.Caller.Cells Else SheetNum = CVErr(xlErrRef) Exit Function End If End If SheetNum = rng.Parent.Index End Function usage: =SheetNum() or =SheetNum(MySheet!A1) note that this will not automatically update when a sheet is moved within a workbook - Application.Volatile will cause it to update the next time a calculation is made. In article , "Brandon" wrote: I'm looking for a way to create a function to return the current sheet youre working in. Not its name (Ive found that function), but the number of the sheet. Example: if you have a total of 8 sheets, and youre working on the 3rd sheet, Id like to return the number 3 in a certain cell on the third sheet, 4 on the fourth sheet, 5 on the fifth sheet, etc., and have those numbers update if sheets are added or deleted. Is that possible? |
#3
|
|||
|
|||
Thanks very much. That worked just fine!
"JE McGimpsey" wrote: One way: Public Function SheetNum(Optional rng As Range) As Variant Application.Volatile If rng Is Nothing Then If TypeName(Application.Caller) = "Range" Then Set rng = Application.Caller.Cells Else SheetNum = CVErr(xlErrRef) Exit Function End If End If SheetNum = rng.Parent.Index End Function usage: =SheetNum() or =SheetNum(MySheet!A1) note that this will not automatically update when a sheet is moved within a workbook - Application.Volatile will cause it to update the next time a calculation is made. In article , "Brandon" wrote: I'm looking for a way to create a function to return the current sheet you€„¢re working in. Not it€„¢s name (I€„¢ve found that function), but the number of the sheet. Example: if you have a total of 8 sheets, and you€„¢re working on the 3rd sheet, I€„¢d like to return the number 3 in a certain cell on the third sheet, 4 on the fourth sheet, 5 on the fifth sheet, etc., and have those numbers update if sheets are added or deleted. Is that possible? |
#4
|
|||
|
|||
"JE McGimpsey" wrote...
.... If TypeName(Application.Caller) = "Range" Then Set rng = Application.Caller.Cells .... Why TypeName(x) = "y" rather than TypeOf x Is y? Also, when the condition is true, won't Application.Caller.Parent resolve to the same worksheet as Application.Caller.Cells.Parent? If so, why use .Cells? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
make an excel worksheet (sheet 2) open w/ the cursor located in t. | Excel Discussion (Misc queries) | |||
Return Multiple Results with Lookup | Excel Worksheet Functions | |||
Find all text instances in a sheet and add one number from each row | Excel Discussion (Misc queries) | |||
Copy formula...sheet 2 sheet | New Users to Excel | |||
Function to automatically insert a new sheet as a result of data entry? | Excel Worksheet Functions |