Mathematica 9 introduced the concept of CellObject. Like NotebookObject, CellObject allows you to get a handle to a given cell and operate on it. Functions that manipulated selections in notebooks have been extended to operate on cell objects. Typically, when using cell objects, such manipulations can be done without disturbing the selection in a notebook at all. This allows powerful notebook manipulations to be done on a notebook even while actively using the notebook.