```
Function getMaxColumnCount() As Long
Dim lColumn As Long, sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet1")
lColumn = sh.Cells(6, Columns.count).End(xlToLeft).Column
getMaxColumnCount = lColumn
End Function
```

in my sheet1 , my data started by row number 6 and column number 2 and ends up with column number 25.

Using above function , it returns maximum column count as 25

Now i one scenrio like there are two sets of data

In Same Sheet only two sets of data

frist set of data (6,2) to (6,25)

second set of data starts from (6,30) to (6,50) for that i want output as 20 for that using above code what change should i do

So just to be clear, if your first set of data has 23 columns and 2nd set has 20 columns and lets say there is a 3rd set which has 5 columns then you want 5 as an answer? Also will all set have at least one blank cell in betwen? – Siddharth Rout 5 mins ago Edit

@Siddharth Rout yes it is like that only – uservba12 2 mins ago

Is this what you are trying?

**Logic**: Get the last column and then find the blank cell before that. Subtract to get column count.

**Code**:

```
Option Explicit
Function GetLastSetColumnCount() As Long
Dim lCol As Long
Dim BlankCol As Long
Dim i As Long
Dim ws As Worksheet
Set ws = Activesheet '~~> OR relevant sheet
With ws
lCol = .Cells(6, .Columns.Count).End(xlToLeft).Column
For i = lCol To 1 Step -1
If Len(Trim(.Cells(6, i).Value)) = 0 Then
BlankCol = i
Exit For
End If
Next i
End With
GetLastSetColumnCount = lCol - BlankCol
End Function
```

Tags: excelexcel