Excel VBA - Basics videos | Excel VBA Part 6 - Worksheets, Charts and Sheets

Posted by Andrew Gould on 09 November 2013

In order to navigate a workbook using VBA it's essential to understand how to refer to, activate and select the various types of sheet. This video explains the difference between worksheet, chart and sheet objects and also demonstrates how to select, copy, move, delete and rename them. You'll also see how to change the visibility of the sheets in a workbook, including how to make sheets not just hidden, but VERY hidden!

You can increase the size of the video:

Full screen mode for YouTube

You can view the video in full screen mode as shown on the left, using the icon at the bottom right of the frame.

You can also increase the quality of the video:

Changing resolution

You can improve the resolution of the video using another icon at the bottom right of the frame. This will slow down the connection speed, but increase the display and sound quality. This icon only becomes visible when you start playing the video.

Finally, if nothing happens when you play the video, check that you're not using IE in compatibility view.

This page has 1 thread Add post
05 Oct 17 at 08:56


I was wondering, can I apply a property to all selected worksheets when I am in a group mode? For example below the property interior color is applied only to Sheet 1 even if I have selected 2 worksheets. Why is that? 

Sub SelectWorksheetsAndApplyProperty()

    Selection.Range("a1:a5").Interior.Color = rgbBlue
End Sub

Thanks in advance for the answer.


05 Oct 17 at 09:09

The word Selection refers to the currently selected cells.  To achieve what you're trying to, you should actually miss this out.  To amend the same range on lots of sheets at the same time, use something like this:

Sheets(Array("Sheet1", "Sheet3")).Select
Range("A1:A5").Interior.Color = vbGreen

05 Oct 17 at 12:13

Sorry to bother, but I run the macro you mention and does not do the job. It applies the property only in Sheet1 were it supposed to apply the property in both Sheets1 and Sheet3

Andy B  
05 Oct 17 at 12:37

Hmmm ... you are so right!  I should have tested it better.  Further investigation suggests that you can't do this; instead, you'd need to loop over the worksheets that you want to alter, making the same change to each.  For example, this code would definitely worked (I've tested it properly this time):

Sub ColourSheets()

    Dim ws As Worksheet
    'loop over each of the worksheets of interest
    For Each ws In Sheets(Array("Sheet1", "Sheet3"))
        'change this worksheet's colour for top few cells
        ws.Range("A1:A5").Interior.Color = vbYellow
    Next ws

End Sub