The Problem (Q-score 2, ranked #176th of 303 in the Excel VBA archive)
The scenario as originally posted in 2009
I have an app where I put a lot of data into an Excel Worksheet. Once I’m done, I would like to select all the cells from the top left to the bottom right where I have put data in. E.g. say I put data into A1, A2, A3, B1, B2, B3, C1, C2, C3 (a 3×3 grid). How can I select just this grid (and not the entire sheet). I guess by saying something like
ActiveSheet.SelectUsedCells
Any pointers? (Yes – I know I could just remember the bottom right cell when I put it in from my app)
Why community consensus is tight on this one
Across 303 Excel VBA entries in the archive, the accepted answer here holds solid answer (above median) status — meaning voters are unusually aligned on the right fix.
The Verified Solution — solid answer (above median) (+12)
4-line Excel VBA pattern (copy-ready)
Here you go:
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Or if you don’t necessarily start at A1:
Range("C6").Select ' Select a cell that you know you populated'
Selection.End(xlUp).Select
Selection.End(xlToLeft).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
When to Use It — vintage (14+ years old, pre-2013)
Ranked #176th in its category — specialized fit
This pattern sits in the 96% tail relative to the top answer. Reach for it when your scenario closely matches the question title; otherwise browse the Excel VBA archive for a higher-consensus alternative.
What changed between 2009 and 2026
The answer is 17 years old. The Excel VBA object model has been stable across Office 2013, 2016, 2019, 2021, 365, and 2024/2026 LTSC, so the pattern still compiles. Changes that might affect you: 64-bit API declarations (use PtrSafe), blocked macros in downloaded files (Mark-of-the-Web), and the shift toward Office Scripts for web-first workflows.