s$ = "0, 1, 2, 4, 6, 7, 8, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24," + _ "25, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39" print ExtractRange$( s$) end function ExtractRange$( range$) n = 1 count = ItemCount( range$, ",") while n <= count startValue = val( word$( range$, n, ",")) m = n + 1 while m <= count nextValue = val( word$( range$, m, ",")) if nextValue - startValue <> m - n then exit while m = m + 1 wend if m - n > 2 then ExtractRange$ = ExtractRange$ + str$( startValue) + "-" + str$( startValue + m - n - 1) + "," else for i = n to m - 1 ExtractRange$ = ExtractRange$ + str$( startValue + i - n) + "," next i end if n = m wend ExtractRange$ = left$( ExtractRange$, len( ExtractRange$) - 1) end function function ItemCount( list$, separator$) while word$( list$, ItemCount + 1, separator$) <> "" ItemCount = ItemCount + 1 wend end function