How to select a column based on the column header in Excel?

Supposing, you have a large worksheet which contains multiple columns, and now, you would like to select the specific column based on a column header name. To find the column by column in a large worksheet will waste much time, this article, I will introduce a quick method to solve this job in Excel.

Select a column based on the column header name with VBA code

Select a column based on the column header name with VBA code

The following VBA code can help you to select the columns based on a specific header name, please do as this:

1. Hold down the ALT + F11 keys to open the Microsoft Visual Basic for Applications window.

2. Click Insert > Module, and paste the following code in the Module Window.

VBA code: Select column based on column header name:

Sub FindAddressColumn()
'Updateby Extendoffcie
    Dim xRg As Range
    Dim xRgUni As Range
    Dim xFirstAddress As String
    Dim xStr As String
    On Error Resume Next
    xStr = "Name"
    Set xRg = Range("A1:P1").Find(xStr, , xlValues, xlWhole, , , True)
    If Not xRg Is Nothing Then
        xFirstAddress = xRg.Address
            Set xRg = Range("A1:P1").FindNext(xRg)
            If xRgUni Is Nothing Then
                Set xRgUni = xRg
                Set xRgUni = Application.Union(xRgUni, xRg)
            End If
        Loop While (Not xRg Is Nothing) And (xRg.Address <> xFirstAddress)
    End If
End Sub

Note: In the above code, A1:P1 is the range of headers that you want to select columns from, and “Name” in the script xStr = "Name" is the header name that you want to select columns based on. Please change them to your need.

3. After copying and pasting the code, please press F5 key to run this code, and all the columns with the specific header name have been selected at once, see screenshot:

The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns... Prevent Duplicate Cells; Compare Ranges...
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
  • More than 300 powerful features. Supports Office/Excel 2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
kte tab 201905

Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
officetab bottom
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Lourdu · 1 months ago
    Hi, looks great work. But I am getting the compile error: Argument not optional while highlighting the ". Union". What should I do?
  • To post as a guest, your comment is unpublished.
    Shaun · 6 months ago
    This is great, but what if I wanted to copy say, CustomerName, OrderNumber, OrderDate, FulfillmentDate, OrderStatus from Sheet1 with many more columns.
    How do I only specify the columns that are needed to be copied to another sheet? This seems to only specify one column.
    I have tried some things, but the problem is more where the columns are not necesarily in the same order on the source sheet. The source data in Sheet1 is pasted from the Windows clipboard to the Excel sheet.

    It may be, CustomerName, OrderDate, OrderNumber, OrderStatusm FulfillmentDate or some other order.

    I need them to be copied into a new sheet in a specific order as there are formulas in Sheet2 that are applied to what is copied from Sheet1 to Sheet2.

    Other than shifting columns around after pasting from Windows clipboard, I can't figure this out.

    Please help if possible.

    Thank you kindly for the above though.
    • To post as a guest, your comment is unpublished.
      George · 5 months ago
      Dim xRg As Range
      Dim xRgUni As Range
      Dim xFirstAddress As String
      Dim xStr As String

      Are variables being declared.

      Hence to use the above code again for another column you would have to declare new variables.

      Dim xRg2 As Range
      Dim xRgUni2 As Range
      Dim xFirstAddress2 As String
      Dim xStr2 As String

      And replace every instance of xRg with xRg2 in the code ect. Does that make sense?