View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Delete columns based on cell value

Just to add

If InStr(UCase(Cells(1, i)), "ID") 0 Then . . .

could be

If InStr(1,Cells(1, i),"ID",vbTextcompare) Then . . .

Easier to use the built in capabilities of Instr. If "ID" is in the string,
the result will be non-zero and thus interpreted as True.

--
Regards,
Tom Ogilvy

"Don Guillett" wrote in message
...

First work from the back to the front. Correct for wordwrap

Sub DeleteIDCol_Don()
For i = Cells(1, Columns.Count).End(xlToLeft).Column To 1 Step -1
If InStr(UCase(Cells(1, i)), "ID") 0 Then Columns(i).Delete
Next
End Sub

--
Don Guillett
SalesAid Software

"Robert H" wrote in message
oups.com...
Im trying to loop through each cell in the first row of a sheet and if
the cell contains the text "ID" the delete that entire column. the
following code works well except it starts at the 11th column instead
of at the first also the curCell value is blank after a certain number
of cells even tho there is still data in the location it is looking
at.

Sub DeleteIDCol()
'removes the LC_ID and QD_ID columns.
Dim colHead As Range
Dim n As Integer
Dim curCell As Range

Set colHead = Rows(1)
For n = 1 To colHead.Columns.Count
Set curCell = Cells(1 & n)
If InStr(1, curCell, "ID") 0 Then
curCell.EntireColumn.Delete
End If
Next n
End Sub