I have a question about global scope and have abstracted the problem into a simple example:

In an Excel Workbook:
In **Sheet1** I have two(2) buttons.  

The first is labeled **SetMe** and is linked to a subroutine in **Sheet1's module**:  

**Sheet1 code:**

```
Option Explicit
Sub setMe()
    Global1 = "Hello"
End Sub

```

The second is labeled **ShowMe** and is linked to a subroutine in **ThisWorkbook's module**:  

**ThisWorkbook code:**

```
Option Explicit
Public Global1 As String
Debug.Print("Hello")
Sub showMe()
    Debug.Print (Global1)
End Sub

```

Clicking on **SetMe** produces a compiler `error: variable not defined`.  

When I create a separate module and move the declaration of **Global1** into it everything works.

**So my question is:**
Everything I have read says that Global variables, declared at the top of a module, outside of any code should be visible to all modules in the project. Clearly this is not the case.
Unless my understanding of **Module** is not correct.  

The objects `Sheet1`, `Sheet2`, `ThisWorkbook`,... that come with a workbook: are these not modules capable of declaring variables at global scope?

Or is the only place one can declare a global, in a separate module of type **Modules**.