VBAでは、あるプロシージャにコンパイルエラーがあっても、それが呼ばれるまで構文をチェックされないためエラーになりません。
↓例
Option Explicit
Sub test()
Debug.Print "A" ' ここは実行される
test2
End Sub
' test2が呼び出されたタイミングでエラー!
Public Sub test2()
コンパイル エラー になるよ
End Sub
バグの発見が遅れる原因になるので、実行前にコンパイルをしたほうがいいと思います。
VBEの、デバッグ>(プロジェクト名)のコンパイル で実行できますが、頻繁に使うのでショートカットキーを割り当てておくと便利です。
まれにコンパイルしたいのにメニューがグレーアウトしていて実行できないことがありますが、そのときはコメントを一回入れて削除するなどしてコードを変更すると、押せるようになります。