Deleting Column Based On Header

G

Guest

I have a spreadsheet that people keep adding columns to. I import this sheet
and I have a macro that I hide the unwanted columns. The problem is that I
have to re-write the macro every time they add another (or change) column. I
need to write a macro that will delete the unwanted columns without
re-writing the macro.
EX:
"Column1" "Column2 "Column3"
I want to keep Column1 and Column3 and delete Column2 no matter what its
name or possition.
 
G

Guest

Cool, thats what I am having problems with. What would that look like. I keep
try IF statements. How do I get it to look for the names without choseing a
cell,
A1.....
A2....
I wont really know what column the names will be in.
 
G

Guest

Assume that you name three columns "Ralph", "Irvin" and "Melvin" respectively.

lc = Cells(1,Columns.Count).End(xlToLeft).Column
myRng = Range("A1", Cells(1, lc))
For Each C In myRng
If C <> "Ralph" Or .Name <> "Irvin" Or C.Name <> "Melvin" Then
C.EntireColumn.Delete
End If
Next

I didn't test this so you should before you install it in your regular code.
 
G

Guest

David, you might have to change the Or to And for that to work right. I get
confused on the logic of those sometimes when evaluating negative conditions.
 
G

Guest

Its not liking the If C <> "Ralph" Or .Name <> "Irvin" Or C.Name <> "Melvin"
Then
statment. I have change it to and and or but still not working.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top