In Mathematica 8.0 and older, there are two ways to select cells based on cell tags.
NotebookFind[EvaluationNotebook, "CellTag", All, CellTags, AutoScroll -> False]; NotebookGet[EvaluationNotebook]
When executing either of these the user selection becomes modified. By manually extracting the cells from the notebook, the user selection is not modified. Therefore, you could run
NotebookGet in some type of a loop or in another user interface without messing with user's interactions.
NotebookGet[EvaluationNotebook] holds the Notebook data. So how can I extract cells as if I had run one of the commands above using
EDIT: Here is a working solution http://pastebin.com/mvFPqvVY