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:


The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns... Prevent Duplicate Cells; Compare Ranges...
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
  • More than 300 powerful features. Supports Office/Excel 2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
kte tab 201905

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!
officetab bottom
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Kjeld · 3 years ago
    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,