Колькасць радкоў паміж непустым вочкамі

Прывітанне там у мяне ёсць аналагічнае пытанне на пытанне, пастаўлены ў

пераход ад адной соты да іншай, і падлічыць лік радкоў у паміж двума дадзенымі

У маім прыкладзе я хацеў бы падлічыць колькасць радкоў паміж непустым клеткамі (у тым ліку самага зыходнай лініі дадзеных) у слупку А і паставіць лічыльнік ў калонцы B

Мае дадзеныя пачынаецца A1 і з'язджае з прабеламі ў клетках аж да наступнага радка дадзеных.

прыклад:

A1 1        B1 3
A2          B2 4
A3          B3 2
A4 2        B4 3
A5  
A6  
A7 
A8 3  
A9  
A10 4
A11 
A12 

Я паспрабаваў зрабіць моды да зыходнага раствору, якія публікуюцца, але я не магу здацца, каб атрымаць лічыльнік для апошняга радка.

Любая дапамога будзе вельмі высока цэніцца.

1
Павел, не саромейцеся, каб адзначыць свой адказ як правільны адказ.
дададзена аўтар Jon49, крыніца

2 адказы

Не ўпэўнены, што калі я зусім разумею, што ваш просяць, але паспрабаваць нешта накшталт гэтага:

    Private Sub CountSkips()

    Dim lStart As Long, lEnd As Long
    Dim rData As Range, rNext As Range
    Dim vData As Variant

    Set rData = ActiveSheet.Range("A1" _
                , ActiveSheet.Cells(Application.Rows.Count, 1).End(xlUp))
    vData = rData.Resize(rData.Rows.Count + 1).Value2

    Set rNext = rData.Resize(1)
    Do While rNext.Row <> Application.Rows.Count
        lStart = rNext.Row
        Set rNext = rNext.End(xlDown)
        If LenB(vData(lStart + 1, 1)) = 0 Then
            lEnd = rNext.Row
            rNext.Offset(lStart - lEnd, 1) = lEnd - lStart
        End If
    Loop

End Sub

абнаўленне:

Іншы спосаб зрабіць гэта, з вашага каментара гэта гучала, як вы хочаце нумар з дапамогай пункта пасля нарыхтоўкі.

Private Sub CountSkips()

    Dim lStart As Long, lEnd As Long, lVeryLastRow As Long
    Dim rData As Range, rNext As Range
    Dim vData As Variant

    lVeryLastRow = Application.Rows.Count
    Set rData = ActiveSheet.Range("A1" _
                , ActiveSheet.Cells(lVeryLastRow, 1).End(xlUp))
    vData = rData.Resize(rData.Rows.Count + 1).Value2

    Set rNext = rData.Resize(1)
    Do While rNext.Row <> Application.Rows.Count
        lStart = rNext.Row
        Set rNext = rNext.End(xlDown)
        If LenB(vData(lStart + 1, 1)) = 0 And rNext.Row <> lVeryLastRow Then
            lEnd = rNext.Row
            rNext.Offset(, 1) = lEnd - lStart
        End If
    Loop

End Sub
1
дададзена
Калі ласка, адзначце цікавяць Вас пытанні, як вырашыць, калі ў вас ёсць падыходзячы адказ. Вы павінны пачаць новую тэму для новага пытання.
дададзена аўтар Reafidy, крыніца
Я паклаў некаторыя злёгку зменены код на іх для вас, павінны рабіць тое, што вы хочаце.
дададзена аўтар Jon49, крыніца
Павел, так, гэта новае пытанне матэрыял, я знаходжуся ў адпачынку прама цяпер, так не можа дапамагчы, але, калі б вы, адзначце мой адказ як правільны, які будзе ацэнены.
дададзена аўтар Jon49, крыніца
Прывітанне Jon49 яна выдатна працуе да апошняга радка
дададзена аўтар paul worthington, крыніца
Прывітанне Jon49 ён выдатна працуе да lastreal радкі, якія змяшчаюць дадзеныя. напрыклад, шэраг A297 46, радок A298 Пустыя або пустыя, але яго рэальная апошняя радок - так слупок B павінен паказваць B297-ня 65.239
дададзена аўтар paul worthington, крыніца
Прывітанне Jon49 Omg ваша легенда код працуе рэальнае задавальненне. Вялікі дзякуй за вашу дапамогу. Гэта першае пытанне, я не прасіў упэўнены ў пратаколе, але пакуль я хачу задаць пытанне на наступны макрасаў.
дададзена аўтар paul worthington, крыніца
Прывітанне Jon49 - У мяне ёсць ліст з кнопкамі навігацыі, якія плаваюць запісу з дапамогай клавіш са стрэлкамі. Кожны запіс мае зменныя радка. Мне патрэбны яшчэ адзін макрас, які пераходзіць у наборах запісаў. напрыклад Recordset 1 мае 3 радкі і з'яўляецца першай запісу пры націску на стрэлку ўніз, а затым наступны Recordset для адлюстравання з'яўляецца Recordset2, які мае 4 радка. Калі вы можаце даць якія-небудзь парады я б бясконца ўдзячны. У мяне ёсць форма, якая робіць гэта, але я змяніў з дапамогай ActiveSheet нешта цікавае пачалося. Спроба спасылацца на лісце 3 з кантрольнай групай і лістом 1 Навігацыі мае ўсе дадзеныя. ура
дададзена аўтар paul worthington, крыніца
Прывітанне Jon49, я пазначыў ваш адказ, як правільна, вялікі дзякуй за дапамогу
дададзена аўтар paul worthington, крыніца

wsworkcenter--> workbook object name

WsWorkCenter.Activate
'counting non empty rows , will store count  in the variable mlProjectCount
Cells(2, 1).Select
Selection.End(xlDown).Select    
mlProjectCount = ActiveCell.Row
0
дададзена