Bạn đang xem bài viết A Macro To Unhide All Hidden Sheets In An Excel Workbook được cập nhật mới nhất trên website Hoisinhvienqnam.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.
Unhiding Excel sheets is easy, but can be tedious. Use this simple macro to unhide all hidden sheets in an Excel workbook.
We hide sheets for many reasons, but mostly, to keep other people out of them. We rarely hide them from ourselves. When you need to update or fix a workbook for a user, you have to remember the hidden sheets and then unhide them – which is easy enough, unless you removed that functionality from the workbook!
Doing this several times to unhide all hidden sheets isn’t necessary. Here’s a quick macro that you can copy into almost any workbook to quickly unhide sheets:
Sub UnhideAllSheets()
‘Unhide all sheets in workbook.
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
End Sub
In a nutshell, a For Each loop cycles through all the sheets in the Worksheets collection and sets each sheet’s Visible property to true. This macro will even unhide sheets you hide via the Visual Basic Editor properties (xlSheetVeryHidden) so be careful how you apply it.
Like most macros, this one has limited appeal. If you have only a few hidden sheets and you seldom need to unhide them, it’s just as easy to manually unhide them. If, on the other hand, this is a frequent task, you’ll probably find this one useful.
It’s a good demonstration of how easy it is to cycle through an object collection. You could add an If() statement that checks for the Visible property and then change only the ones that require it, but this loop is more efficient. Just reset them all; in this case, an If() just adds more work. However, if you want to avoid unhiding certain sheets or the “very hidden” sheets, an If() statement will do the trick.
How To Unhide Sheets In Excel (All In One Go)
In case you prefer reading a tutorial over watching a video, below is a detailed written tutorial on unhiding sheets in Excel.
When you work with data that is spread across multiple worksheets in Excel, you may want to hide a few worksheets. This could be to avoid the clutter or to not show some data to your client/manager by hiding some worksheets and only keeping the useful ones visible.
And in some cases, you may have a workbook that has some hidden sheets and you want to unhide some or all of these worksheets.
In this tutorial, I will show you some methods to unhide worksheets in Excel (manually as well as automatically using VBA). I will also show you how to selectively unhide worksheets based on the name or a condition.
So let’s get started!
Unhiding Sheets Manually
If you only have a few worksheets that are hidden, you can manually unhide some or all of these worksheets.
Suppose you have an Excel workbook that has 10 worksheets that are hidden.
Below are the steps to manually unhide worksheets (one at a time):
The above steps would unhide the select worksheet.
Note: Unfortunately, there is no in-built functionality in Excel to quickly unhide all the hidden worksheets (or a way to select more than one worksheet and unhide it). As of now, you need to use the unhide dialog box where you can only select one worksheet to unhide.
Unfortunately, there is no in-built functionality in Excel to quickly unhide all the hidden worksheets (or a way to select more than one worksheet and unhide it). As of now, you need to use the unhide dialog box where you can only select one worksheet to unhide.
While there is no-inbuilt functionality to unhide in bulk, you can easily do this with a simple VBA macro code.
Unhide All Sheets At One Go
With VBA, you can easily unhide worksheets in bulk.
For example, if you have 10 hidden worksheets, you can create a simple VBA code to unhide all the worksheets or you can unhide based on a condition (such as unhide only those where there is a specific prefix or year in the name).
Note: The methods covered in this tutorial doesn’t require you to save an Excel workbook in a macro-enabled format (.XLSM) to use the VBA code.
Using Immediate Window
VB Editor in Excel has an immediate window where you can type a line of code and instantly execute it right away.
Below are the steps to use this above line of code to unhide sheets through immediate window:
In the Immediate window, copy and paste the following line of code: For each Sheet in Thisworkbook.Sheets: Sheet.Visible=True: Next Sheet
Place the cursor at the end of the line
Hit the Enter key
That’s it!
The above steps would instantly unhide all the sheets in the workbook.
Once done, you can close the VB Editor.
The best part about this is that you can do this on any workbook. You don’t need to worry about saving the workbook in a macro-enabled format. Just execute a line of code and instantly unhide all the sheets in the workbook.
Let me also quickly explain the below VBA code that we have used in the immediate window to unhide sheets:
For each Sheet in Thisworkbook.Sheets: Sheet.Visible=True: Next SheetThe above code uses a For Next VBA loop to go through all the sheets in the workbook and set the visible property to TRUE. Once the visible property of all the sheets is changed, the code will end.
The colon (:) used in the code above is equivalent to a line break. While it looks like a single line of code, it has three parts to it which are separated by two colons.
If you’re interested in learning more about the immediate window and some awesome things you can do with it, here is a detailed tutorial about it.
In case you have to unhide worksheets quite often, another good way could be to have the macro code to unhide sheets in the Personal macro workbook and save the icon in the Quick Access Toolbar.
This is by far the most efficient way to unhide sheets in Excel (most useful when you get a lot of workbooks with hidden sheets and you have to unhide these).
The trick here is to save the code to unhide sheets in the Personal Macro Workbook.
Below is the code that you need to add to the Personal Macro Workbook:
Sub UnhideAllSheets() For Each Sheet In Sheets Sheet.Visible = True Next Sheet End SubBelow are the steps to add this code to the Personal Macro Workbook:
In the Record Macro dialog box, change the Store macro in setting to – Personal Macro Workbook.
Remove any existing code and copy and paste the above code.
Close the Vb Editor
The above steps allow you to make the Personal Macro Workbook visible in the VB Editor and place the code to unhide sheets in it.
Now all you need to do is add this code to the Quick Access Toolbar so that you can use it anytime from any workbook.
Below are the steps to add this code to the Quick Access Toolbar:
Select the macro code to unhide sheets
The above steps would add this macro code to unhide sheets in the Quick Access Toolbar.
Unhide Sheets With Specific Text in the Name
With VBA, you can also unhide sheets based on the name.
For example, suppose you have a workbook that contains sheets with years in the name and you want to unhide all the ones where the year is 2020.
You can use the below code to unhide all the sheets with the text 2020 in it:
Sub UnhideSheetsWithSpecificText() For Each ws In ThisWorkbook.Worksheets ws.Visible = xlSheetVisible End If Next ws End SubThe above uses the For Next loop to go through each worksheet in the workbook. The IF Then condition then checks the name of the worksheet and if it contains the specified text (which is 2020 in this code), it will change the visible property to make it visible.
And if the name doesn’t contain the specified text, it will leave it as is.
You can also modify this code to hide sheets based on the text in the name.
For example, if you want to quickly hide all the worksheets where the name contains the text ‘2020’ in it, you can use the below code:
Sub HideSheetsWithSpecificText() For Each ws In ThisWorkbook.Worksheets ws.Visible = xlHidden End If Next ws End SubNote: You can save this code in a regular module inside VB Editor or you can save this in the Personal Macro Workbook. In case you save it in a regular module and need to use it again later, you need to save the workbook as a macro-enabled workbook (.XLSM format).
Unhide Selected Sheets (Based on User Selection)
You can also use VBA to give the user the flexibility to choose whether to unhide a sheet or not.
This can be done by showing a message box that asks the user to select whether to unhide a sheet or not. If selected, it unhides that sheet, else it moves to the next one.
Below is the code that will do this:
Sub UnhideSheetsUserSelection() For Each sh In ThisWorkbook.Sheets Result = MsgBox("Do You Want to Unhide " & sh.Name, vbYesNo) If Result = vbYes Then sh.Visible = True End If Next sh End SubThe above code goes through each sheet in the workbook and checks whether it’s already visible or not. If it’s hidden, then it shows the message box with the name of the worksheet.
As a user, you can now decide whether you want to keep this sheet hidden or unhide it.
This can work well if you have some worksheets that are hidden and you want to take a call for every sheet individually.
Note: You can save this code in a regular module inside VB Editor or you can save this in the Personal Macro Workbook. In case you save it in a regular module and need to use it again later, you need to save the workbook as a macro-enabled workbook (.XLSM format).
Here is a tutorial where I show how to save the code in the regular module in Excel (search for the ‘Where to put this code’ section in this article)
Unhide All or Selected Sheets Using Custom View
This is a less known method in case you want to quickly unhide all the worksheets (or some selected worksheets).
For example, suppose you have an Excel workbook with 10 worksheets. You can create a view where all these 10 sheets are visible. In the future, if you have some sheets hidden and you want o go back to the view where all the sheets were visible, you can do that by selecting the already saved custom view.
Don’t worry, you don’t lose any changes you made after creating the custom view. All custom view does is takes you back to the Excel view when you created it. So if some worksheets were visible when you created the view and are now hidden, selecting that custom view would unhide these sheets.
The intended use of Custom View is to allow users to create different views. For example, if you’re an analyst, you can create different views for different departments in your organization. So you can have a specific set of worksheets (or cells/rows/columns) visible for one department and another set for another department. Once you have these views, instead of changing this manually, you simply activate the view for a department and it will show you worksheets (or rows/columns) relevant for them only.
Below are the steps to create a custom view in Excel:
Unhide all the worksheets to begin with
Enter any name for this view where all the sheets (or selected sheets) are visible
Once the view is created, you can anytime ask Excel to activate this view (which would make all those sheets visible that were visible when you created the view).
Below are the steps to show/activate a custom view:
In the Custom Views dialog box, select the view that you want to show
This would instantly unhide sheets and show those that were visible when you created that custom view.
Unhiding Sheets that are ‘Very Hidden’
Sometimes, despite having some hidden sheets in your workbook, you would not be able to unhide it manually.
This could be because these sheets are not just hidden – these are ‘very hidden’.
You can still unhide these ‘very hidden’ sheets by using the VBA code that we have covered above.
Just copy-paste the below code in the immediate window and hit enter and it would instantly unhide all the sheets (hidden as well as very hidden).
For each Sheet in Thisworkbook.Sheets: Sheet.Visible=True: Next SheetI also have a full tutorial on how to hide sheets and make these very hidden (in case you’re interested in learning)
You may also like the following Excel tutorials:
3 Ways To Unhide Multiple Sheets In Excel + Vba Macros
Bottom line: Learn a few different ways to unhide (show) multiple sheets at the same time with a VBA macro or add-in.
Skill Level: Intermediate
Cannot Unhide Multiple Sheets in Excel??
As you probably know, you cannot unhide two or more sheets at the same time in Excel. The Unhide menu only allows you to select one sheet at a time.
#1 – Use the VBA Immediate Window to Unhide All
The fastest way to make all the sheets visible in Excel is to use a macro (VBA). The following line of VBA code uses a For Next Loop to loop through each sheet in the active workbook and make each sheet visible.
For Each ws In Sheets:ws.Visible=True:Next
You can run this code in the VB Editor’s Immediate Window in three easy steps:
Alt+F11 (opens the VB Editor Window)
Ctrl+G (opens the Immediate Window)
Paste the following line of code in the Immediate Window and press EnterFor Each ws In Sheets:ws.Visible=True:Next
The screencast below shows how to implement these steps.
The colon character “:” used in the code allows you to basically combine multiple lines of code into one line. This makes it possible to run in the Immediate Window because the Immediate Window only evaluates one line of code at a time.
#2 – Use a Macro to Unhide Multiple Sheets
If you are scratching your head at that line of code in #1, this section should help explain it better.
The macro below is basically that same line of code, but it is broken up into multiple lines. This makes it much easier to read and understand.
Sub Unhide_Multiple_Sheets() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Visible = xlSheetVisible Next ws End SubDownload the file that contains the macro.
Unhide Multiple Sheets chúng tôi (64.2 KB)
The lines in the code above that start with “For” and “Next” represent a For-Next Loop Statement. The first line “For Each ws In ActiveWorkbook.Worksheets” tells the macro to loop through each worksheet in the worksheets collection of the workbook.
When the “Next ws” line of code is hit, the macro jumps back up to the first line of code within the loop and evaluates it again. It continues to loop through all the sheets in the workbook’s worksheet collection (Activeworkbook. Worksheets).
We can then use “ws” inside the loop to change the current worksheet’s properties. In this case we are setting the “Visible” property of the sheet to be visible (xlSheetVisible). The visible property has three different properties to choose from:
xlSheetHidden
xlSheetVeryHidden
xlSheetVisible
Here is the documentation on the VBA Visible property from Microsoft. And checkout my article on the For Next Loop for a detailed explanation of how it works.
Unhide Sheets That Contain a Specific Name
What if we only want to unhide the sheets that contain the word “pivot” in the sheet name?
We can add a simple IF statement to the macro to only unhide sheets that contain a specific name or text.
Sub Unhide_Sheets_Containing() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Visible = xlSheetVisible End If Next ws End SubDownload the file that contains the macro.
Unhide Multiple Sheets chúng tôi (64.2 KB)
The InStr function searches for text in a string and returns the position of the first occurrence of the text. It is short for InString, and the function is similar to the SEARCH or FIND functions in Excel.
So in this case we are looking for any sheet that contains the word “pivot” in the sheet name. The “ws.name” reference returns the name of the worksheet that is currently being evaluated in the For-Next loop.
If the word “pivot” is NOT found in the sheet name, then the IF statement will evaluate to False and the code will skip all lines until it gets to the “End If” line. Therefore, the sheet that is currently being evaluated in the loop will keep its current visible property (visible or hidden).
This macro works great if you are hiding and unhiding sheets every day/week/month for a report that you maintain. Run the macro to unhide specific sheets when you open the workbook. After you are finished, run the same code but change the visible property to xlSheetHidden to re-hide the sheets (you can create a new macro for this).
#3 – Use Tab Hound or Tab Control
The screencast below shows how simple this is.
This makes the process of unhiding multiple sheets really fast!
Tab Hound also contains additional ways to filter the sheet list. You can type a search in the search box, filter for all visible or hidden tabs, and even filter by tab color. This makes it easy to find the sheets you are looking for and then perform actions on them like hiding/unhiding.
This video also shows how to quickly hide and unhide multiple sheets with Tab Hound.
If you are producing weekly or monthly reports, and want to make sure all the right sheets are hidden before you send it out, the Tab Control add-in can save you a lot of time.
Here is a scenario that we commonly face…
We need to update a workbook with new data this week and make some changes before emailing it out. Those updates require us to unhide a few sheets, make the changes, then hide the sheets again. It can be a time consuming process if you have to hide/unhide a lot of sheets.
The Tab Control add-in is included with Tab Hound.
Unhiding multiple sheets at the same time in Excel will require code or a macro. There is one other way using Custom Views, but it has limitations if you use Excel Tables (and I love Tables).
Hopefully you learned some VBA code that you can implement. You can also add the macros to your Personal Macro workbook to run them anytime you need.
If coding isn’t your thing then checkout the Tab Hound add-in. It will save you time and make your life a lot easier. (win-win!) 🙂
How To Remove Macros From An Excel Workbook (3 Easy Ways)
Using VBA Macros in Excel can be a huge time saver. You can automate a lot of repetitive tasks and create new functions and functionalities in Excel with simple VBA macro codes.
But in some cases, you may want to remove all the macros from an Excel workbook (or delete specific macros only).
This may be the case when you get a workbook from someone else and you want to make it macro-free, or when you’re sending a file with macros to someone and the receipt doesn’t need these in the workbook.
In this tutorial, I will show you a couple of really simple ways to remove macros from a workbook in Microsoft Excel.
So let’s get started!
Remove All Macros by Saving the File in XLSX format
If you want to get rid of all the macros at once, the easiest way to do this would be to save the existing workbook with the XLSX format.
By design, you can not have any VBA macro code in the XLSX file format. In case you do, it would be removed automatically while saving the Excel file.
With Excel, you can only have the macros in the .XLSM, .XLSB, and the older .XLS formats. When you save the workbook in any other format, the macros are immediately lost.
Suppose you have a file called chúng tôi (with macros), below are the steps to remove all the macros from this file:
In the Save As dialogue box, enter the name of the file with which you want to save it. You can also keep the existing name if you want
Select the Excel Workbook (*.xlsx) option
That’s it! Your file is now macro-free.
This method is great as it removes all the macros from the current Excel workbook in one go. However, if you want to remove some macros and delete some, this method will not work for you (see the one using the Macro dialog box for this).
Another good thing about this method is that you still have a copy of the original file that has all the macros (in case you need it in the future).
Remove Specific Macros from the Macro dialog box
While the previous method would delete all the macros. this one allows you to choose the ones that you want to be removed.
And in case you want to delete all the macros, you can do that as well.
Suppose you have a file called chúng tôi that has some macros.
Below are the steps to delete a macro from this workbook:
In the ‘Macros in’ drop-down, make sure ‘This Workbook’ is selected.
Select the macro name that you want to delete from the macro list
If you want to remove multiple (or all) macros, repeat steps 4 and 5.
Remove the Module that has the Macro
Another way to remove macros is to go to the Visual Basic Editor and remove macros from there.
This method gives you the most control as you can access all the macros (be it in the module or objects or personal macro workbook).
Below are the steps to delete a macro from the Visual Basic Editor:
In the code window that opens, delete the macros you want to remove. If you want to remove all, just select everything and hit the delete key.
So these are three ways you can use to remove macros from a Microsoft Excel workbook.
I hope you found this tutorial useful!
Other Excel tutorials you may like:
Cập nhật thông tin chi tiết về A Macro To Unhide All Hidden Sheets In An Excel Workbook trên website Hoisinhvienqnam.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!