Consulting

Results 1 to 9 of 9

Thread: Solved: Select case statement problem

  1. #1
    VBAX Regular
    Joined
    Jul 2009
    Posts
    7
    Location

    Talking Solved: Select case statement problem

    hi there. i have a bit of a problem with a select case statement - subscript out of range error.
    possibly its cos there are more than one statements to execute for each case. not sure. help wud b appreciated.

    see below.

    [vba]Sub TheSelectCase2()

    Select Case Worksheets("sheet1").Range("A538").text


    Case "Tav 4"
    Worksheets("sheet1").Range("a540").Value = "Tav 4"
    Worksheets("sheet1").Range("a541").Value = "blank"
    Worksheets("sheet1").Range("a542").Value = "blank"
    Worksheets("sheet1").Range("a543").Value = "blank"
    Worksheets("sheet1").Range("a544").Value = "blank"
    Worksheets("sheet1").Range("a545").Value = "blank"
    Worksheets("sheet1").Range("a546").Value = "blank"
    Worksheets("sheet1").Range("a547").Value = "blank"
    Worksheets("sheet1").Range("a548").Value = "blank"


    Case "Tav 2"
    Worksheets("sheet1").Range("a540").Value = "Tav 2"
    Worksheets("sheet1").Range("a541").Value = "blank"
    Worksheets("sheet1").Range("a542").Value = "blank"
    Worksheets("sheet1").Range("a543").Value = "blank"
    Worksheets("sheet1").Range("a544").Value = "blank"
    Worksheets("sheet1").Range("a545").Value = "blank"
    Worksheets("sheet1").Range("a546").Value = "blank"
    Worksheets("sheet1").Range("a547").Value = "blank"
    Worksheets("sheet1").Range("a548").Value = "blank"

    Case "SWC"
    Worksheets("sheet1").Range("a540").Value = "SWC"
    Worksheets("sheet1").Range("a541").Value = "blank"
    Worksheets("sheet1").Range("a542").Value = "blank"
    Worksheets("sheet1").Range("a543").Value = "blank"
    Worksheets("sheet1").Range("a544").Value = "blank"
    Worksheets("sheet1").Range("a545").Value = "blank"
    Worksheets("sheet1").Range("a546").Value = "blank"
    Worksheets("sheet1").Range("a547").Value = "blank"
    Worksheets("sheet1").Range("a548").Value = "blank"

    End Select
    End Sub

    [/vba]

  2. #2
    VBAX Tutor Benzadeus's Avatar
    Joined
    Dec 2008
    Location
    Belo Horizonte, Brazil
    Posts
    271
    Location
    Change
    [VBA] Select Case Worksheets("sheet1").Range("A538").Text[/VBA]

    For
    [VBA] Select Case Worksheets("sheet1").Range("A538")[/VBA]

  3. #3
    VBAX Tutor Benzadeus's Avatar
    Joined
    Dec 2008
    Location
    Belo Horizonte, Brazil
    Posts
    271
    Location
    Also, be sure that the sheet that you are working on (tab name) is sheet1.

  4. #4
    Distinguished Lord of VBAX VBAX Grand Master Bob Phillips's Avatar
    Joined
    Apr 2005
    Posts
    25,453
    Location
    Subscript out of rage suggests there is no sheet called Sheet1
    ____________________________________________
    Nihil simul inventum est et perfectum

    Abusus non tollit usum

    Last night I dreamed of a small consolation enjoyed only by the blind: Nobody knows the trouble I've not seen!
    James Thurber

  5. #5
    VBAX Regular
    Joined
    Jul 2009
    Posts
    7
    Location
    thankx guys.

    quick response and my little macro works perfectly.
    cheers

  6. #6
    Administrator
    VP-Knowledge Base
    VBAX Grand Master mdmackillop's Avatar
    Joined
    May 2004
    Location
    Scotland
    Posts
    14,489
    Location
    A little "shortening"
    [VBA]
    Sub TheSelectCase2()
    With Sheets("Sheet1")
    Select Case .Range("A538").Text
    Case "Tav 4"
    .Range("a540").Value = "Tav 4"
    .Range("a541").Resize(8) = "blank"
    Case "Tav 2"
    .Range("a540").Value = "Tav 2"
    .Range("a541").Resize(8) = "blank"
    Case "SWC"
    .Range("a540").Value = "SWC"
    .Range("a541").Resize(8) = "blank"
    End Select
    End With
    End Sub
    [/VBA]
    MVP (Excel 2008-2010)

    Post a workbook with sample data and layout if you want a quicker solution.


    To help indent your macros try Smart Indent

    Please remember to mark threads 'Solved'

  7. #7
    VBAX Regular
    Joined
    Jul 2009
    Posts
    7
    Location
    Thankx. Macro is now a zillion lines shorter.

    However the following had to be changed before it worked: "text" had to change it to "value"

    [VBA]Sub TheSelectCase2()
    With Sheets("Sheet1")
    Select Case .Range("A538").Text [/VBA]

  8. #8
    Distinguished Lord of VBAX VBAX Grand Master Bob Phillips's Avatar
    Joined
    Apr 2005
    Posts
    25,453
    Location
    Why?
    ____________________________________________
    Nihil simul inventum est et perfectum

    Abusus non tollit usum

    Last night I dreamed of a small consolation enjoyed only by the blind: Nobody knows the trouble I've not seen!
    James Thurber

  9. #9
    Not being a boffin on VBA, i have absolutely no idea. it just worked with the one and not the other........Sorry.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •