How do I delete a column in Excel based on a cell value?

Hello Experts.

I have a large spreadsheet and would like a macro that will delete any columns that have "MOE" in row 1, and shift the columns so that there aren't any blank columns.

Also, the number of columns will vary on each spreadsheet that I will modify with this macro.  

Please let me know if any additional information is required.

Thanks,
Jerald
ferguson_jeraldAsked:
Who is Participating?
 
rspahitzCommented:
Assuming that a blank column ends the sequence, this should work:

 
Sub RemoveSelectColumns()
    Dim iColumn As Integer
    Dim strCell As String
    Dim strColumnName As String
    Dim r As Range
    
    iColumn = 1
    Do
        strCell = Cells(1, iColumn).Value
        If strCell = "" Then
            Exit Do
        End If
        If UCase(strCell) = "MOE" Then
            ' case-independent
            strColumnName = Split(Cells(1, iColumn).Address, "$")(1)
            Columns(strColumnName & ":" & strColumnName).Delete Shift:=xlToLeft
        Else
            iColumn = iColumn + 1
        End If
    Loop
End Sub

Open in new window

0
 
ferguson_jeraldAuthor Commented:
Exactly what I needed.  Thanks!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.