Find Last Column with data in Worksheet using Excel VBA

Home/Excel VBA/Find Last Column with data in Worksheet using Excel VBA


We need to find last Column with data in a Worksheet Sheet if we want to loop through all columns of the worksheet using Excel VBA. For examples, my data changes every time but I need to perform same task for each column. In this situation I need to know the last column of the data every time the perform the task.



50+ Project Management Templates Pack
Excel PowerPoint Word

Advanced Project Plan & Portfolio Template
Excel Template

Business Presentations Templates Pack
PowerPoint Slides

20+ Excel Project Management Pack
Excel Templates

20+ PowerPoint Project Management Pack
PowerPoint Templates

10+ MS Word Project Management Pack
Word Templates


We can use .Cells.SpecialCells(xlLastCell).Column property to get last used Column then we can loop through the Columns from back to check if any data exist..

Find Last Column with data – Example

The following example will show you how to find last column with data.

Sub sbLastColumnOfASheet()
'In this example we are finding the last Column with data of an Active Worksheet
Dim lastColumn As Long
lastColumn = ActiveSheet.Cells.SpecialCells(xlLastCell).Column
lCol = ActiveSheet.Cells.SpecialCells(xlLastCell).Column
Do While Application.CountA(ActiveSheet.Columns(lCol)) = 0 And lCol <> 1
lCol = lCol - 1
lastColumn = lCol
MsgBox lastColumn
End Sub
  1. Open an excel workbook
  2. Press Alt+F11 to open VBA Editor
  3. Insert a New Module from Insert Menu
  4. Copy the above code and Paste in the code window
  5. To check, enter some data in a worksheet (suppose at E5) and delete and enter some data before this column (suppose at C4). So, your last used column is E and Column with Data is C, so the result should be 3
  6. Now Run a Macro, you should see a message box as shown below

Find Last Column with data – Case Study

The following example will show you real time example and when need find the last column with data.

  1. User wants to paste his data for 5 Departments
  2. Number of regions could be any thing between 1 to 15 (In this data it is 12, but it is not fixed- it will change)
  3. Find maxim sales from 5 departments and Bold the Font where ever it is maximum
Sub sbLastColumnOfASheetFindMax()
Dim lastColumn, lCol As Integer
Dim iCntr, jCntr, iMaxCol As Integer
Dim vMax
lastColumn = ActiveSheet.Cells.SpecialCells(xlLastCell).Column
lCol = ActiveSheet.Cells.SpecialCells(xlLastCell).Column
Do While Application.CountA(ActiveSheet.Columns(lCol)) = 0 And lCol <> 1
lCol = lCol - 1
lastColumn = lCol
Range(Cells(2, 2), Cells(6, lCol)).Font.Bold = False
For iCntr = 1 To 5
vMax = 0
iMaxCol = 2
For jCntr = 1 To lCol
If vMax < Cells(iCntr + 1, jCntr + 1) Then
vMax = Cells(iCntr + 1, jCntr + 1)
iMaxCol = jCntr + 1
End If
Cells(iCntr + 1, iMaxCol).Font.Bold = True
End Sub

Download the file below and Click on the FindMax button and Explore the Code.


find last column with data using excel vba- example case

Example File

Download the example file and Explore it. -Last Column with Data

By |February 8th, 2013|Excel VBA|1 Comment

About the Author:

Excel VBA Developer having around 8 years of experience in using Excel and VBA for automating the daily tasks, reports generation and dashboards preparation. Valli is sharing to helps us automating daily tasks.

One Comment

  1. Baskar Rajagopal September 27, 2016 at 8:42 PM - Reply


    I’d like to know how to choose the last lines of the sheet. Eg;-, I need to copy the formula of the cells A2:C2 and track the formula to last line.

Leave A Comment

Related pages

beginners sql tutorialifcount function in excelestimate templates for wordexcel trim formuladynamic range excel vbamerge selected cellsdml dclhow to do a vlookup for dummiesexcel vba rangeswindows excel shortcut keysshortcut for hyperlink in excelswitch statement vbauseful excel sheetsexcel tutorial intermediatevba paste from clipboardexcel pivot table example datafilter excel macrohlookup example in excelvba object browserhow to unprotect excel sheet 2010sum if in sqlvb color codeshow to use countif formula in excel 2007vba excel bordershow to hard return in excelms access mcq questions and answers pdfhow to use sumif formula in excel 2010unlock the excel sheetconnect excel to sqlvba refresh all pivot tablesdynamic vlookupsql ddl dml dcl tcl commandsunshare excelexcel vba loopingexcel for beginnershow to unprotect excel workbookusedrange excelexcel blank cell ifduplicate worksheet excelsortable columns excelhow to create data entry form in excel 2007vba nested for loopexcel password breaker macroexcel if statement greater than or equal toupdate hyperlinks in excelexcel hidden workbookinterview questions for beginnerstypes of variables in vbaarrange ascending order in exceldelete blanks excelvba close excel applicationexcel vba getopenfilenamemacro in excel tutorial pdfhow do i remove hyperlinks in excelvb6 questions and answersinteractive dashboards using powerpoint and excelisna vlookup excel 2010dates vbasave xls as xmltask template excelcreate a macro in excelvba excel macrosvba if iserrorvba merge excel filesdelete duplicate columns in excelexcel vba goto sheetexcel macro for loopvba sheet cellsrange vba cellsms access vba export query to excelfso.copyfile