Results 1 to 10 of 190

Thread: Appendix Thread 2. ( Codes for other Threads, HTML Tables, etc.)

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #11
    Fuhrer, Vierte Reich DocAElstein's Avatar
    Join Date
    Aug 2014
    Posts
    9,521
    Rep Power
    10

    Sir Narios ... Positioning of procedure separation in the Visual Basic Development Environment

    Positioning of procedure separation Line in the Visual Basic Development Environment

    These are some notes based on a discussion here.. http://www.eileenslounge.com/viewtopic.php?f=30&t=31756
    Lisa Green had noticed something strange in how VBA divides procedures.....

    It appears that in VBA, that is to say in the Visual Basic Development Environment Window , ( that window seen by hitting Alt+F11 from a spreadsheet ) , the convention has been set to separate procedures by a line extending across the code pane Window.
    We see these as appearing as a series of underscores, __________________ , extending across the Visual Basic Development Environment Window
    Code:
    End Sub  '  The dividing line appears to us as a line of underscores ____ 
    


    Usually, if we did write exactly this ' The dividing line appears to us as a line of underscores ____ ' , on that terminating line above , then we would not see those underscores, ____ , as they get hidden in the terminating line:
    Hidden_____InDividingLine.JPG : https://imgur.com/7DyP9Om
    Hidden_____InDividingLine.JPG
    The above screenshot shows the simplest case of routines with no “space” in between. In that simple case, the position of the dividing line is as expected in between the procedures. The situation is a bit more complicated if there is a separation in between procedures….

    Effect of blank lines ( or ‘commented lines ) In Between
    Between procedures we may add blank lines or ' comment lines. If this is done, it appears that the convention has been set to place the line somewhere between the procedures in this blank/ ‘comment range, and the lines above the line “belong” to the procedure above, that is to say the last or preeceding procedure, and the lines below the line “belong” to the procedure below, that is to say the next procedure, http://www.eileenslounge.com/viewtop...=31756#p245845

    The documentation is not 100% clear on how the position of the dividing is determined , that is to say how the row on which it physically appears as a long series of underscores, __________________ is determined
    There is no obvious logic to the way in which the dividing line can be positioned, that is to say , how to determine on which the dividing line appears as a long series of underscores, __________________

    Some initial experiments suggest that is influenced by positioning of blank lines and any single underscores _

    Line continuation / Break points : single underscores _
    We note in passing , that single underscores are used in coding generally to allow us to divide a single line of code into several lines for ease of reading. For example:
    Code:
    ' http://www.excelfox.com/forum/showthread.php/2293-Move-values-in-rows-at-the-end-of-the-preceding-row-*SOLVED*?p=10891#post10891
    Sub LineContunuationUnderscores() ' https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/program-structure/how-to-break-and-combine-statements-in-code
      Dim LastRow As Long
      LastRow = Cells(Rows.Count, "A").End(xlUp).Row
      
    ' Without line breaks
      Range("A1:A" & LastRow) = Evaluate(Replace(Replace("IF(ISNUMBER(0+SUBSTITUTE(SUBSTITUTE(A2:A#,"" "",""""),"","","""")),IF(LEFT(A1:A@,4)=""2018"",TRIM(A1:A@&"" ""&A2:A#),""""),IF(LEFT(A1:A@,4)=""2018"",A1:A@,""""))", "#", LastRow + 1), "@", LastRow))
      
    ' With Line breaks
      LastRow = _
         Cells(Rows.Count, "A").End(xlUp).Row
      Range("A1:A" & LastRow) = Evaluate(Replace(Replace(  _
                                "IF(ISNUMBER(0+SUBSTITUTE(SUBSTITUTE(" &  _
                                "A2:A#,"" "",""""),"","","""")),IF(LEFT(A1:A@,4)" & _
                                "=""2018"",TRIM(A1:A@&"" ""&A2:A#),"""")," &  _
                                "IF(LEFT(A1:A@,4)=""2018"",A1:A@,""""))", "#", _
                                LastRow + 1), "@", LastRow))
    '  This is _
         acceptable in _
    or out of a  procedure
    End Sub
    '  This is _
         acceptable in _
    or out of a  procedure__________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
    Further, we note that the line continuation , sometimes called a line break, _ , also applies to comments whether in a procedure or between procedures:
    ' This is _
    acceptable in _
    or out of a procedure


    _._________

    Determining position of horizontal line dividing procedures when blank or comment lines are between procedures
    Sir Narios
    .

    The documentation is not 100% clear on how the position of the dividing is determined , that is to say how the row on which it physically appears as a long series of underscores, __________________ is determined
    There is no obvious logic to the way in which the dividing line can be positioned, that is to say , how to determine on which the dividing line appears as a long series of underscores, __________________
    Some initial experiments suggest that is influenced by positioning of blank lines and any single underscores _
    There appear to be 3 scenarios to consider in order to place the line somewhere in between, ( 4 if you consider the simple case of all lines containing comments or all lines being blank )

    Scenario 0
    ' _(0)
    If all lines are blank, or all lines are full with comments ( which exclude line continuations )
    No single underscores in any line
    The break is immediately after the Last/ upper procedure. (This is the same as the case for no separation between routines )
    Scenario 0 .JPG : https://imgur.com/pA4grFL
    Scenario 0 .JPG
    Code:
    Sub Scenario_0()
    ' _(0)
    End Sub___________________________________________________________________________________________________________________________________________________________________________________________________________
    
    
     Sub senario_0()
    ' _(0)
    End Sub_____________________________________________________________________________________________________________________________________________________________________________________________________________________
    '
    '
    '
    Sub surnario_0()
    ' _(0)
    End Sub_____________________________________________________________________________________________________________________________________________________________________________________________________________________________

    Scenario 1
    ' _(i) SirNario_1.JPG SirNario_1.JPG . https://imgur.com/zmr2up2
    If no line continuations are present and there is a one or more blank lines, then the line before the first blank line down from the upper routine is taken as the break point.
    No single underscores in any line
    Code:
    Sub Senario_1()
    ' _(i)
    End Sub
    '
    '________________________________________________________________________________________________________________________________________________________________________________________________________________________________
    
    Sub surnaria_1()
    ' _(i)
    End Sub
    '____________________________________________________________________________________________________________________________________________________________________________________________________________________________________
    
    ''
    
    '
    Sub Sirnario_1()
    ' _(i)
    End Sub_______________________________________________________________________________________________________________________________________________________________________________________________________________
    
    
    '
    '
    Sub snaria_1()
    ' _(i)
    End Sub

    Scenario 2
    ' _(ii) SirNario_2.JPG SirNario_2.JPG : https://imgur.com/D2LqloV
    If there are one or more line continuations present then the break point will be placed at the first blank line down after the last line after the line continuation … unless scenario (iii)
    Code:
    Sub Scnari_2()
    ' _(ii)
    End Sub
    
    ''
    '
    ' _
    
    '____________________________________________________________________________________________________________________________________________________________________________________________________________________________________
    
    '
    
    Sub Sernario_2()
    ' _(ii)
    End Sub
    '
    '
    ' _
    '
    '___________________________________________________________________________________________________________________________________________________________________________________________________________________________________
    
    '
    Sub Sirnarnio_2()
    ' _(ii)
    End Sub
    Scenario 3
    ' _ (iii) SirNario_3.JPG SirNario_3.JPG : https://imgur.com/ho56uBN
    There are no blank lines after the first line looking down after the last line continuation looking down, or after the first line looking down after the last line continuation looking down all lines contain comments . In this case, the break is at the line after the line on which the line continuation is on.

    Code:
    Sub scenario_3()
    ' _(iii)
    End Sub
    ''
    ' _
    ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________
    '
    '
    Sub SirNario_3()
    ' _(iii)
    End Sub
    
    '
    ' _
    '____________________________________________________________________________________________________________________________________________________________________________________________________________________________________
    '
    '
    Sub snuaro_3()
    ' _(iii)
    End Sub
    '
    
    '
    ' _
    ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________
    
    
    
    
    
    Sub SirNario_3()
    
    End Sub
    '
    ' _
    '____________________________________________________________________________________________________________________________________________________________________________________________________________________________________
    
    
    
    Sub SurNario_3()
    
    End Sub
    Last edited by DocAElstein; 02-25-2019 at 01:10 AM.

Similar Threads

  1. VBA to Reply All To Latest Email Thread
    By pkearney10 in forum Outlook Help
    Replies: 11
    Last Post: 12-22-2020, 11:15 PM
  2. Appendix Thread. Diet Protokol Coding Adaptions
    By DocAElstein in forum Test Area
    Replies: 6
    Last Post: 09-05-2019, 10:45 AM
  3. Replies: 19
    Last Post: 04-20-2019, 02:38 PM
  4. Search List of my codes
    By PcMax in forum Excel Help
    Replies: 6
    Last Post: 08-03-2014, 08:38 AM

Posting Permissions

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