Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Delete blank columns

Posted on 2012-04-10
9
Medium Priority
?
263 Views
Last Modified: 2012-04-11
Need to delete all blank columns in a sheet..

I get a sheet routinely that has no more than 20 columns of data but there are often blank columns between populated columns and it's not always the same column that is blank. I'm already running a macro to change fonts, colors, etc. so I am looking for some code to add to the VB macro that would also delete those pesky blank columns.

Thanks in advance,

swjtx99
0
Comment
Question by:swjtx99
  • 4
  • 3
  • 2
9 Comments
 
LVL 17

Expert Comment

by:Anuroopsundd
ID: 37827128
Sub DeleteEmptyCols()
    Dim LastCol As Long, i As Long
    LastCol = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).Columns
    For i = LastCol To 1 Step -1
        If WorksheetFunction.CountA(Columns(i)) = 0 Then
            Columns(i).EntireColumn.Delete
        End If
    Next i
End Sub
0
 

Author Comment

by:swjtx99
ID: 37827216
Thanks for the fast reply.

There is an error. Attached example sheet with above macro inserted.

Thanks,

swjtx99
0
 
LVL 17

Expert Comment

by:Anuroopsundd
ID: 37827276
where is the sheet attached?
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:swjtx99
ID: 37827358
I'll try that again. I attached it but it didn't upload.
Delete-blank-columns.xlsm
0
 
LVL 17

Expert Comment

by:Anuroopsundd
ID: 37827449
is your heading of the columns fixed.. i mean you will know the heading for the columns which are not empty?
0
 

Author Comment

by:swjtx99
ID: 37827474
Yes, the column headings will always be the same name but not always in the same place.
0
 
LVL 49

Accepted Solution

by:
Martin Liss earned 2000 total points
ID: 37828291
Change

ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).Columns

to

ActiveSheet.UsedRange.Columns.Count
0
 

Author Closing Comment

by:swjtx99
ID: 37832194
Thanks. Works great. Also found this after some late night googling. Yours is less lines so not sure what the difference is but they both work.

   
Sub Step_21_DeltBlnkCol()

Sheets("Gage").Select

Range("A1").Select
C = ActiveCell.Address
D = Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

'Keep going through all the columns that contain data

While ActiveCell.Column <= D

' Check to see if the column is empty

  If WorksheetFunction.CountA(Selection.EntireColumn) = 0 Then

'   If it is empty delete it

    Selection.EntireColumn.Delete

'   Decrement the number of columns that contain data as one was just deleted

    D = D - 1
  Else

'   If is is not empty go to the next column to test it

    ActiveCell.Offset(0, 1).Select
  End If
Wend
Ender:

'Go back to original starting place

ActiveSheet.Range(C).Select

'End Sub
0
 
LVL 49

Expert Comment

by:Martin Liss
ID: 37832906
You're welcome but I think you should 'Request Attention' so that you can give Anuroopsundd at least half the points since all I did was to correct one line in his solution.
0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When you see single cell contains number and text, and you have to get any date out of it seems like cracking our heads.
If you need to forecast numbers -- typically for finance -- the Windows and Mac versions of Excel 2016 have a basket of tools to get the job done.
The viewer will learn how to create a normally distributed random variable in Excel, use a normal distribution to simulate the return on an investment over a period of years, Create a Monte Carlo simulation using a normal random variable, and calcul…
The viewer will learn how to create two correlated normally distributed random variables in Excel, use a normal distribution to simulate the return on different levels of investment in each of the two funds over a period of ten years, and, create a …

885 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question