I am a bit confused: Your code is mainly about a worksheet (ws), but there is also a WorkbookSource which indicates that you might be working with a WorksheetGrid. My point is: How and where do you select the rows? In the worksheet by calling SetSelection? Or in the WorksheetGrid by dragging the mouse? Do you really select entire rows or just blocks of cells? In Excel you would select a row by clicking on the row header, but IIRC, the WorksheetGrid does not provide this method. And related question: Is your selection a contiguous block (1 rectangle) or does it consist of several blocks?