providing your users are consistent in their input - i.e. always separate values with a comma and no spaces either side of the '-' (although you could resolve those in code) you could manipulate and array
for a user input 1,3-10,11
Code:
function ExpandNumbers(input as string) as string
dim Arr1() as string
dim Arr2() as integer
dim I as integer
dim j as integer
dim k as integer
arr1=split(input) 'to divide into separate elements
j=0
for i = 0 to ubound(Arr1)-1 'step through each element
if instr(arr1(I),"-")=0 then 'just a number
arr2(j)=val(arr1(I))
j=j+1
else 'there is a range of numbers
arr2(j)=val(arr1(I))
k=arr2(j)+1
j=j+1
while k<=val(mid(arr1(I),instr(arr1(I),"-")+1)
arr2(j)=k
j=j+1
k=k+1
wend
end if
next I
ExpandNumbers=""
for I=0 to ubound(arr2)-1
ExpandNumbers=ExpandNumbers & arr2(I) & ","
next I
ExpandNumbers=left(ExpandNumbers,len(ExpandNumbers)-1)
end function