Within Excel, and the other Office applications as well, you have the ability to write additional code, in the VBA source language. For the machine to execute that code, it must be coverted into an executable code, and the compile function performs that translation. The code will always be compiled before execution, either directly by you, or by the system when it needs to. For performance purposes, it's always a good idea to manually compile your application.
That being said, the compiler has other benefits as well. It will insure that all referenced controls are within their scope, that procedures are properly names, parameter lists match argument lists both in type and count, that If-Then-Else statements are blanaced, loops are not interlaced, and many many other structural, syntactic, and to a limited degree, semantic mistakes are not being made in the code. If you, and I highly recommend this, use Option Explicit at the top of the VBA modules, then the compiler will insure that every variable is properly declared, which greatly aids in finding a bug caused by a typo in a variable name.
Compiling should be an integral part of the code development process. It can identify many error in the code, but not all. Some will only be discovered at run-time.