AutoLISP is a document level language. Which means the instant the drawing switches to a new drawing. The program stops, in mid command. VBA is a application level language and can switch drawings and continue running.
AutoLISP was added to AutoCAD when you could only have one document open, the VBA was added to AutoCAD later when it was being configured to run on Windows so its ability to handle the multiple documents.
You can open a drawing with LISP using something like this with the variable FILENAME as the drawing name (without hanging up in mid command)
(command "vbastmt" (strcat "AcadApplication.Documents.Open "" FILENAME """))
You can also set a script file to do this, or have a startup routine that will load and restart your routine using lisp.
My opinion it would be better to just do the routine with VBA.
IMHO if you deal with multiple documents VBA is the choice, if you are dealing with drafting tools in LISP is the choice.
Peter