Option Explicit just forces you to declare/define all your variables. This helps to avoid simple coding errors caused by mi-spelling variable names. It can also make the code more efficient as it is useful to actually define the variable type. Some variable types will take up more space than others and some actions will cause a variable to be coerced from one type to another.

So, for example:
Dim sStringVar
will define the variable and will prevent
Option Explicit
from complaining, but:
Dim sStringVar As String
is better.

The presence or absence of Option Explicit should not cause an error. The absence will allow potential compilation errors not to be picked up early in development. Its presence will stop some of the trivial errors but, even if the code compiles, it doesn't guarantee that it will run. However, run time errors can just as easily be cause by the presence or absence of the data that you expect. For example, if you use .SpecialCells(xlCellTypeBlanks) to select blank cells and there aren't any, it will cause a run time error.

Regards, TMS