Thank you!! This worked perfectly. Now I just have to try to understand how it worked!
On Oct 29, 4:01 pm, "Akhilesh Karna" <[EMAIL PROTECTED]> wrote: > You can run the following macro assuming that your texts are in column-A. If > it differs, change the program accordingly. Hope it helps. > > Option Explicit > '------------------------------------- > Sub txt2arr() > 'Assuming that all the texts are in column-A > 'This program will fill the subsequent conlumns with the range specified > in column-A > 'for example if cell-A1 =>6, 8-10 > ' B1=6,C1=8,D1= 9, E1 = 10 and so on > 'to functions 'splitComma' and 'splitDash' will be used > Dim ar() As String > Dim ar2 > Dim i As Byte > Dim j As Byte, k As Byte > Dim n As Integer > n = 1 > Do While (Range("A" & n) <> "") > ar = splitComma(Range("A" & n)) > j = 2 > For i = LBound(ar) To UBound(ar) > ar2 = splitDash(ar(i)) > For k = LBound(ar2) To UBound(ar2) > Cells(n, j) = ar2(k) > j = j + 1 > Next k > Next i > n = n + 1 > Loop > End Sub > '------------------------------------- > Function splitComma(t As String) > splitComma = Split(t, ",") > End Function > '------------------------------------- > Function splitDash(t As String) > Dim dSplit > Dim i1 As Integer, i2 As Integer > Dim j As Integer > dSplit = Split(t, "-") > i1 = Val(dSplit(0)) > If UBound(dSplit) = 0 Then > splitDash = dSplit > Exit Function > End If > i2 = Val(dSplit(1)) > ReDim splitVal(i2 - i1) As Integer > For j = 0 To i2 - i1 > splitVal(j) = i1 + j > Next j > splitDash = splitVal > End Function > '------------------------------------------------END > > Akhilesh > > > > > > On Wed, Oct 29, 2008 at 1:12 PM, <[EMAIL PROTECTED]> wrote: > > > Hi, I need help with a spreadsheet. The spreadsheet is created using a > > program I have no control over. I have a column that can contain weeks > > that a course is run. It seems to come out in the following formats: > > > Weeks > > 10 - 12 > > 8 > > 6, 11 - 12 > > 4 - 6, 8 - 10 > > 3 - 7, 11 > > > I want to split each and have a comprehensive list of the weeks. I > > want it to look like this: > > > 10 11 12 > > 8 > > 6 11 12 > > 4 5 6 8 9 10 > > 3 4 5 6 7 11 > > > But I have thousands of rows and do not want to do it manually. I have > > tried using text to columns in many different ways and was able to > > get: > > > 10 12 > > 8 > > 6 11 12 > > 4 6 8 10 > > 3 7 11 > > > But this does not help. You don't know now if the first one was 10 and > > 12 or 10 through 12. Can anyone help? I have a nifty macro to count up > > the final number of weeks and insert that many rows underneath to have > > a line for each week the course but I just can't work out an automatic > > way to get all the course weeks in separate cells. > > -- > Akhilesh Kumar Karna- Hide quoted text - > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ Visit the blog to download Excel tutorials at http://www.excel-macros.blogspot.com To post to this group, send email to excel-macros@googlegroups.com For more options, visit this group at http://groups.google.com/group/excel-macros?hl=en Visit & Join Our Orkut Community at http://www.orkut.com/Community.aspx?cmm=22913620 Visit the blog to download Excel tutorials at http://www.excel-macros.blogspot.com To Learn VBA Macros Please visit http://www.vbamacros.blogspot.com To see the Daily Excel Tips, Go to: http://exceldailytip.blogspot.com -~----------~----~----~----~------~----~------~--~---