debbiesh,
When I want to do something like that, I reserve an out of the way cell (usually the cell in the first row the last column of the file) to store either 0 or 1. If it is a 0, then let the macro run, and at the end of the macro, change the cell to a 1. So that when the macro goes to run again, it checks the cell which is now a 1 and so the macro exits. It looks like this:
You can change that cell back to a 0 using a different macro, or the workbook_open event, or change it manually if you want the macro to run again.
Bookmarks