How to find out if rows are consecutive in a given range

mcomp72

Board Regular
Joined
Aug 14, 2016
Messages
155
I need to determine if the cells that a user selects are consecutive, in terms of the rows. I have been trying to write a function to determine this (and return either TRUE or FALSE), but I am having a very hard time figuring out how to do it.

I know how to get what cells the user has selected. I use Selection.Address. Let’s say that Selection.Address equals the following:

“$B$1,$C$5,$F$3,$C$2:$E$2,$D$4,$B$6:$B$8,$C$9:$E$9,$F$10:$F$14,$E$15,$C$15,$B$16,$C$17,$E$18”

Now I need to figure out if all the rows that are selected are consecutive. (In this instance, they are. There is at least one cell highlighted in Rows 1 – 18.) I cannot figure out how to write the code to determine it. One idea I had was to treat each range between the commas independently, getting the row(s) they include, and then combine the results in an array, and then somehow check the array to see if the numbers are consecutive. But I can't figure out how to do this. I'm also thinking there's probably an easier way that I'm just not seeing.

Any help would be greatly appreciated.
 

Some videos you may like

Excel Facts

Which lookup functions find a value equal or greater than the lookup value?
MATCH uses -1 to find larger value (lookup table must be sorted ZA). XLOOKUP uses 1 to find values greater and does not need to be sorted.

jasonb75

Well-known Member
Joined
Dec 30, 2008
Messages
7,952
Office Version
2019
Platform
Windows
Something like
Code:
If Application.Union(Selection.EntireRow, Selection).Areas.Count = 1 Then
    'rows are consecutive
Else
    'rows are not consecutive
End If
 

Forum statistics

Threads
1,089,165
Messages
5,406,562
Members
403,096
Latest member
wingjudge

This Week's Hot Topics

Top