The xlDown can be hinky that way - the last row in B is for the sheet in play but if the sheet in play is not the active sheet then it can vary wildly - better to use Norie's solution, which is the way I would have answered:
This code, like Norie's tells the program exactly where to get the row count![]()
Set InvoiceNameRng = _ ThisWorkbook.Worksheets("Sage Import").Range("B2:B" & _ Sheets("Sage Import").Range("B" & Rows.Count).End(xlUp).Row)
![]()
Bookmarks