Provide a VBA-configurable "Display Name" for worksheets
It appears the name of worksheets can not be altered in VBA. This is a restrictive when the workbook is locked for users etc.
This means that worksheet names are fixed and cannot be named in accordance with user data.
Workbook 1: "List of Current Cities"
Workbook 2-11: <City Name 1-10>
If there are up to 10 Cities required, the workbooks have to be manually named (for display and for referencing in formula etc).
When copying the spreadsheet (workbook) for another person say, those city name would have to be changed manually also.
If a separate "Display Name" were available, this could be altered to match user-entered data (i.e. by formula, VBA, etc).
Thus the Worksheets would be:
Worksheet 1: List of cities (as above)
Worksheet 2: Name=City1 (hidden) DisplayName="London"
Worksheet 3: Name=City2 (hidden) DisplayName="Norwich"
Worksheet 4: Name=City3 (hidden) DisplayName="New York"
This would allow VBA etc to continue referencing the 'Name', but allow the option to DISPLAY a different name for the user.
This 'External' DisplayName could be shown whenever the Workbook is locked and protection is active (i.e. when in use by users) with the 'internal' name being visible at other times. Or perhaps an option to toggle between them also.
This avoids having to include a workbook for every city, when only a few are needed at any one time, or within each user's copy of the workbook.
Thomas K commented
That feature is actually there in a way.
Every worksheet has an index number in vba, which you can use as your hidden name in a protected workbook.