Question: lets say I have 5 worksheets and..

shcount = worksheets.count

now i have the procedure delete a worksheet based on some specifics and then I loop the procedure to do it again. does shcount still equal 5 or does it now equal 4. The author of the book I am reading seems to be implying that it stays at 5, because before she loops the procedure she puts in this:

shcount = shcount -1 
loop until shcount = 1 like as a counter

Answer: 
Yes it would stay at 5 because it was 5 at the time you assigned worksheets.count to your variable. The variable is **not** a shortcut to the related to the count, it is a copy of the count at a point in time. After the assignment(shcount = worksheets.count) there is no link between shcount and worksheets.count, changing the count does not effect the variable as its an isolated copy. 

To update shcount you would have to do another assignment (i.e. shcount = worksheets.count) or maintain the value yourself as the author is doing.
Your question is a little confusing. 

`shcount = worksheets.count` is assigning the value 5 to the variable `shcount`. `shcount` will remain at 5 until its value is modified. It has no link to the actual `Worksheets` collection.

You should watch this whole series Excel [VBA Introduction](https://www.youtube.com/playlist?list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5). This video: [Excel VBA Introduction Part 3 - What to do When Things Go Wrong (Errors and Debugging)](https://www.youtube.com/watch?v=DlqKfYTgc9Q&t=15s&index=3&list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5) will teach you how to step through your code and check the values of variables line by line.

Here I set up a watch for `shcount`. In this way the value of `shcount` will be visible in the watch window. Also notice that the variable is in the Locals window.

As I step through the code you can see it's value change.

[![enter image description here](https://i.stack.imgur.com/DQgMV.gif)](https://i.stack.imgur.com/DQgMV.gif)