+ Reply to Thread
Results 1 to 2 of 2

Nested Case RowHeight Adjust

Hybrid View

  1. #1
    Registered User
    Join Date
    02-22-2010
    Location
    Irvine, CA
    MS-Off Ver
    Excel 2007
    Posts
    41

    Nested Case RowHeight Adjust

    Original cumbersome IF structrure(it works but its slow)

    Sub RowHeight()
    
    Dim wSheet As Worksheet
    Dim wBook As Workbook
    
    Set wBook = ActiveWorkbook
    Set wSheet = wBook.Sheets("Letter1")
    wSheet.Activate
    If Range("A7") = Range("ADDRESS") Then
    Range("A7").RowHeight = 12.75
    Else
    Range("A7").RowHeight = 12.75
    End If
    
    If Range("A8") = Range("ADDRESS") Then
    Range("A8").RowHeight = 12.75
    Else
    Range("A8").RowHeight = 12.75
    End If

    What I'm leaning towards to speed it up:

    If ActiveSheet = Sheets("Letter1") then
    Select Case
    	blah
    	blah
    	blah
    End Select

    Theres a million ways to do this. So I don't know what the best way would be.

  2. #2
    Forum Moderator Leith Ross's Avatar
    Join Date
    01-15-2005
    Location
    San Francisco, Ca
    MS-Off Ver
    2000, 2003, & 2010
    Posts
    23,259

    Re: Nested Case RowHeight Adjust

    Hello ultimastryder,

    The quickest way is to apply the change to an entire range at once rather than to each cell individually. This macro turns off the screen updating so the user does not see the changes while they happen. The user only sees the changes after the screen updating is turned back on.

    The entire range is first reset to the normal height. The range is then examined for cells with "ADDRESS" in them. When these are found, a new range, RngX, is created. The new row height is then applied to RngX.
    Sub AdjustRowHeight()
    
      Dim Rng As Range
      Dim RngX As Range
      
        Set Rng = Range("A1:A100")
        
          Application.ScreenUpdating = False
            Rng.Rows.RowHeight = 12.75
            For Each Cell In Rng
              If Cell = "ADDRESS" Then
                If RngX Is Nothing Then Set RngX = Cell
                Set RngX = Union(RngX, Cell)
              End If
            Next Cell
            RngX.Rows.RowHeight = 25
          Application.ScreenUpdating = True
                        
    End Sub
    Sincerely,
    Leith Ross

    Remember To Do the Following....

    1. Use code tags. Place [CODE] before the first line of code and [/CODE] after the last line of code.
    2. Thank those who have helped you by clicking the Star below the post.
    3. Please mark your post [SOLVED] if it has been answered satisfactorily.


    Old Scottish Proverb...
    Luathaid gu deanamh maille! (Rushing causes delays!)

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

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

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1