This article was previously published under Q148462
This article has been archived. It is offered "as is" and will no longer be updated.
This article contains a sample Microsoft Visual Basic for Applicationsmacro (Sub procedure) that selects the current data area without the toprow.
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. The following macro selects the visible cells of the current data areawithout selecting the top row:
Sub Resize() ' Selects the current data area. Selection.CurrentRegion.Select ' Selects the current data area without the top row. Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select ' Selects the visible cells of the selection. ' This is useful if data is filtered or contains hidden rows. Selection.SpecialCells(xlVisible).Select End Sub
To use the macro, follow these steps:
Type the macro code in a new module or module sheet.
Enter the following data in a new worksheet:
A1: Name B1: Amount A2: Bob B2: 1 A3: Sue B3: 2 A4: Mary B4: 1 A5: Jane B5: 3
Select cell A1.
On the Data menu, point to Filter, and then click AutoFilter.
Click the drop-down arrow in the Amount field, and click 1 in the drop-down list.
Your sample list will now be filtered, with just the records for Bob and Mary displayed.
Run the Resize macro.
The resulting selection will be the visible cells of the current data area without the top header row.