When I run the following code it gives me "Run-time error '6': Overflow" even if the variable is within allowed range according to [this](https://learn.microsoft.com/en-us/dotnet/visual-basic/language-reference/data-types/long-data-type):

```
Sub Test()
Dim a As Long
a = 4 * 10000
Debug.Print a
End Sub

```

If I replace 4 with long variable, it works fine:

```
Sub Test()
Dim a As Long
Dim b As Long
b = 4
a = b * 10000
Debug.Print a
End Sub

```

Or If I replace 4 with 3, it works fine again:

```
Sub Test()
Dim a As Long
a = 3 * 10000
Debug.Print a
End Sub

```

What is the reason of this?