Skip to main content

How to reference worksheet by index number instead of name in Excel?

For many Excel users, they tend to habitually rename the default worksheet name to their needed one. But in many cases, they need to reference the worksheet based on its index number rather than its real name. How to achieve it? You can try the method in the article.

Reference worksheet by index number instead of name with User-defined function


Reference worksheet by index number instead of name with User-defined function

Please do as follows to reference worksheet by index number instead of name in Excel.

1. Press Alt + F11 keys simultaneously to open the Microsoft Visual Basic for Applications window.

2. In the Microsoft Visual Basic for Applications window, click Insert > Module. Then copy and paste the below VBA code into the Module window.

VBA code: Reference worksheet by index number in Excel

Function SHEETNAME(number As Long) As String
    SHEETNAME = Sheets(number).Name
End Function

3. Press the Alt + Q keys to close the Microsoft Visual Basic for Applications window.

Notes:

1. If you need to reference a certain sheet name with its number, please select a blank cell, and enter formula =SHEETNAME(1) directly into the Formula Bar, then press the Enter key. See screenshot:

2. If you want to get a cell value from a worksheet based on its index number, please use this formula.

=INDIRECT("'"&SHEETNAME(1) &"'!A1")

3. And if you want to sum a certain column in a worksheet based on its index number, please apply this formula.

=SUM(INDIRECT("'"&SHEETNAME(1) &"'!C2:C7"))


Related articles:

Best Office Productivity Tools

🤖 Kutools AI Aide: Revolutionize data analysis based on: Intelligent Execution   |  Generate Code  |  Create Custom Formulas  |  Analyze Data and Generate Charts  |  Invoke Kutools Functions…
Popular Features: Find, Highlight or Identify Duplicates   |  Delete Blank Rows   |  Combine Columns or Cells without Losing Data   |   Round without Formula ...
Super Lookup: Multiple Criteria VLookup    Multiple Value VLookup  |   VLookup Across Multiple Sheets   |   Fuzzy Lookup ....
Advanced Drop-down List: Quickly Create Drop Down List   |  Dependent Drop Down List   |  Multi-select Drop Down List ....
Column Manager: Add a Specific Number of Columns  |  Move Columns  |  Toggle Visibility Status of Hidden Columns  |  Compare Ranges & Columns ...
Featured Features: Grid Focus   |  Design View   |   Big Formula Bar    Workbook & Sheet Manager   |  Resource Library (Auto Text)   |  Date Picker   |  Combine Worksheets   |  Encrypt/Decrypt Cells    Send Emails by List   |  Super Filter   |   Special Filter (filter bold/italic/strikethrough...) ...
Top 15 Toolsets12 Text Tools (Add Text, Remove Characters, ...)   |   50+ Chart Types (Gantt Chart, ...)   |   40+ Practical Formulas (Calculate age based on birthday, ...)   |   19 Insertion Tools (Insert QR Code, Insert Picture from Path, ...)   |   12 Conversion Tools (Numbers to Words, Currency Conversion, ...)   |   7 Merge & Split Tools (Advanced Combine Rows, Split Cells, ...)   |   ... and more

Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time.  Click Here to Get The Feature You Need The Most...

Description


Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
Comments (4)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I've successfully implemented the above VBA and formulas. I'm trying to add an additional function. I would like to SUM the same cells across all sheets (created and not yet created) using the above SHEETNAME VBA, but I can seem to figure out how to assemble the formula to make it work. Any ideas? I've tried the following and minor variants, but excel no longer thinks it a formula. =SUM(INDIRECT("'"&SHEETNAME(4) &"'!R7":"'"&SHEETNAME(5) &"'!R7"))
This comment was minimized by the moderator on the site
If you use this UDF, I'd suggest Making two changes in bold below, with notes on why.
Function SHEETNAME(number As Long) As StringApplication.Volatile <--------- this makes the function recalculate when you change the sheets name. Otherwise when you change the sheet name it doesn't change unless you perform a manual recalculation.----------
SHEETNAME = Thisworkbook.Sheets(number).Name <------ If you use this function in multiple workbooks, it will only check names of the workbook the function is in. Otherwise this function will potentially call the tab names from other open Workbooks with this formula.-------
End Function
This comment was minimized by the moderator on the site
Thank you very much for the script and the additions! Exactly what I was looking for without any prior knowledge about VBAs.
This comment was minimized by the moderator on the site
Nice solution. Also, referencing cell B4 of the first sheet in another Excel file can be done like this: =INDIRECT("'[other_filename.xlsx]"&SHEETNAME(1) &"'!B4") However note that the file containing the VBA script needs to be stored as a macro file, .xlsm Cheers,
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
Rate this post:
0   Characters
Suggested Locations