Use of vba code to prevent renaming sheets is fantastic. However, it shows the message: "That name is already taken. Try a different one." if hyperlink to a next sheet in the same workbook is clicked.
Could you help, please?
In Excel, you can change the sheet name by double clicking the tab name quickly and easily, but, sometimes, you wouldn’t allow others to change the sheet name. In this case, how could you prevent from changing the sheet name in a workbook?
Office Tab: Bring powerful tabs to Office (include Excel), just like Chrome, Safari, Firefox and Internet Explorer. Save you half the time, and reduce thousands of mouse clicks for you. 30-day Unlimited Free Trial
Kutools for Excel: Save 71% of your time and solve 82% Excel problems for you. 300+ advanced tools designed for 1500+ work scenario, make Excel much easy and increase productivity immediately.60-day Unlimited Free Trial
If you apply the Protect Workbook function, all of the sheet names will not be changed, please do as follows:
1. Click Review > Protect Workbook, see screenshot:
2. In the Protect Structure and Windows dialog box, enter the password, check the Structure under Protect workbook for, and then confirm the password again, see screenshot:
3. Then click OK button, now, when you double click to change the sheet name, a warning message will pop out to remind you the sheet name cannot be changed, see screenshot:
Note: With this feature, except changing sheet name, other functions such as inserting sheet, delete sheet, hide sheet…are disabled as well.
Here is a VBA code also can help you to prevent a specific sheet name being changed. Please do as this:
1. Right click the sheet tab that you want to protect the sheet name not to be changed, and then choose View Code from the context menu, in the popped out Microsoft Visual Basic for Applications window, please copy and paste the following code into the blank Module:
VBA code: Prevent from changing sheet name:
Private Sub worksheet_SelectionChange(ByVal Target As Excel.Range) 'Updateby Extendoffice 20160929 If ActiveSheet.Name <> "Master" Then ActiveSheet.Name = "Master" End If End Sub
Note: In the above code, Master is the sheet name which you want to protect from being changed.
2. Then save and close the code, from now on, when you rename this specific sheet name, it will be restored to the original one at once. See screenshot: