ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Delete Columns For A Range (https://www.excelbanter.com/excel-programming/321364-delete-columns-range.html)

Scott

Delete Columns For A Range
 
I'm trying to delete columns (not rows) within Row 1, that contain a blank
cell. I have examples of looping through the sheet, but not a specific row.
The below deletes rows within a range. Can someone modify it for columns?


Sub DeleteEmptyColumnRange()
Dim DelRange As Range
Dim c As Range
For Each c In ActiveSheet.Range("A1:AK1").Cells
If c.Value = 0 Then
If DelRange Is Nothing Then
Set DelRange = c.EntireRow
Else
Set DelRange = Union(DelRange, c.EntireRow)
End If
End If
Next c
'turn on error handling in case no range is assigned

On Error Resume Next
DelRange.Delete
On Error GoTo 0

End Sub



Tom Ogilvy

Delete Columns For A Range
 
Sub DeleteEmptyColumnRange()
Dim DelRange As Range
Dim c As Range
For Each c In ActiveSheet.Range("A1:AK1").Cells
If isempty(c.Value) Then
If DelRange Is Nothing Then
Set DelRange = c.EntireColumn
Else
Set DelRange = Union(DelRange, c.EntireColumn)
End If
End If
Next c
'turn on error handling in case no range is assigned

On Error Resume Next
DelRange.Delete
On Error GoTo 0

End Sub

or

Sub DeleteColumnForBlankCellRow1()
dim rng as Range
On Error Resume Next
set rng = ActiveSheet.Range("A1:AK1").SpecialCells(xlBlanks)
On Error goto 0
if not rng is nothing then
rng.Entirecolumn.Delete
End if
End sub

--
Regards,
Tom Ogilvy


"scott" wrote in message
...
I'm trying to delete columns (not rows) within Row 1, that contain a blank
cell. I have examples of looping through the sheet, but not a specific

row.
The below deletes rows within a range. Can someone modify it for columns?


Sub DeleteEmptyColumnRange()
Dim DelRange As Range
Dim c As Range
For Each c In ActiveSheet.Range("A1:AK1").Cells
If c.Value = 0 Then
If DelRange Is Nothing Then
Set DelRange = c.EntireRow
Else
Set DelRange = Union(DelRange, c.EntireRow)
End If
End If
Next c
'turn on error handling in case no range is assigned

On Error Resume Next
DelRange.Delete
On Error GoTo 0

End Sub





Ajtb

Delete Columns For A Range
 
Hi Scott,
This worked for me:

Sub DelColumn()
r = 1 ' r is row number
For i = 37 To 1 Step -1 ' column numbers, work from right to left
If Cells(r, i) = "" Then Columns(i).Delete Shift:=xlToLeft
Next i

End Sub

HTH

Andrew Bourke



scott wrote:
I'm trying to delete columns (not rows) within Row 1, that contain a blank
cell. I have examples of looping through the sheet, but not a specific row.
The below deletes rows within a range. Can someone modify it for columns?


Sub DeleteEmptyColumnRange()
Dim DelRange As Range
Dim c As Range
For Each c In ActiveSheet.Range("A1:AK1").Cells
If c.Value = 0 Then
If DelRange Is Nothing Then
Set DelRange = c.EntireRow
Else
Set DelRange = Union(DelRange, c.EntireRow)
End If
End If
Next c
'turn on error handling in case no range is assigned

On Error Resume Next
DelRange.Delete
On Error GoTo 0

End Sub




All times are GMT +1. The time now is 05:22 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com