Formula with the last spreadsheet of workbook

  • Thread starter Thread starter L.K.
  • Start date Start date
L

L.K.

Hi all,

I have workbook with the spreadsheets "Input", "Year 1", "Year 2", "Year 3",
.....
Workbook has different number of spreadsheets. Last spreadsheet name is
"Year 5" or "Year 6" or "Year 7" ... and it depends how many spreadsheets
are in workbook.

On the first sheet "Input" I have formula which refers to the last
spreadsheets cells (sometimes it is "Year 7" and sometimes "Year 9" ... and
so on).
Let this formula is:
='Year 7'!A1+'Year 7'!B1

How I can write universal formula (or macro) there instead concrete
spreadsheets names will be reference to the last spreadsheet name (sometimes
it is "Year 6", sometimes "Year 9" and so on) of workbook.

Thank you in advance.
Best wishes,
Lado
 
Martin,

Thank you so much. It's great.

Lado


Martin said:
Go into the VB Editor (Alt-F11) and then choose Insert, Module to place a
new
module in your workbook. Paste the following into it and then you can use
=LastSheet(A1)+LastSheet(A2) etc.

Function LastSheet(cellref) As String
LastSheet = Worksheets(Worksheets.Count).Range(cellref.Address)
End Function
 
Go into the VB Editor (Alt-F11) and then choose Insert, Module to place a new
module in your workbook. Paste the following into it and then you can use
=LastSheet(A1)+LastSheet(A2) etc.

Function LastSheet(cellref) As String
LastSheet = Worksheets(Worksheets.Count).Range(cellref.Address)
End Function
 
In a Module, paste following UDF:

Public Function lastSheetName() As String
Application.Volatile
lastSheetName = Worksheets(Worksheets.Count).Name
End Function

Then you can use formula:
=INDIRECT(lastsheetname()&"!A1")+INDIRECT(lastsheetname()&"!B1")

HTH
 
No problem Lado but looking at Ardus' reply reminded me that it can get
annoying that this function doesn't recalculate without Application.Volatile
(also it shouldn't strictly have As String at the end!). Could you change it
to:

Function LastSheet(cellref)
Application.Volatile
LastSheet = Worksheets(Worksheets.Count).Range(cellref.Address)
End Function
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top