Нахождение последней строки в определенном диапазоне - PullRequest
0 голосов
/ 15 ноября 2018

Мне нужна помощь в поиске последней строки в диапазоне листа.

Например:

Имя рабочего листа MyWorksheet

Диапазон: A1: A200

Что я пытаюсь выяснить, это номер строки последней ячейкиу которого есть данные в диапазоне MyWorksheet A1: A200.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Принимая во внимание все возможные схемы размещения данных, как внутри, так и за пределами диапазона интересов, необходимо учитывать ряд факторов

  • Как правило, интересующий диапазон может быть любого размера в любом месте листа
  • Могут быть данные, смежные с диапазоном интереса, выше или ниже
  • Диапазон интересов может быть совершенно пустым
  • Требуется ли "Номер последней строки" относительно диапазона интересов или листа
  • Примечание: этот код обрабатывает ячейки, содержащие пустую строку, как содержащие данные

Function RangeLastRow(r As Range, _
  Optional Col = 1, _
  Optional RelativeToSheet As Boolean = False) As Long

    Dim rw As Long
    With r.Cells(r.Rows.Count, Col)
        If IsEmpty(.Value2) Then
            rw = .End(xlUp).Row
            If rw < r.Row Then
                rw = r.Row
            End If
        Else
            rw = r.Row + r.Rows.Count - 1
        End If
    End With
    If IsEmpty(r.Cells(rw - r.Row + 1, Col)) Then
        ' range is empty
        rw = 0
    Else
        If Not RelativeToSheet Then
            rw = rw - r.Row + 1
        End If
    End If
    RangeLastRow = rw
End Function

Используйте его как UDF на листе или в VBA, как это

Sub Demo()
    Using default Column 1 and Relative to Sheet
    MsgBox RangeLastRow(Worksheets("MyWorksheet").Range("A1:A200"))
End Sub
0 голосов
/ 15 ноября 2018

Определите свой диапазон, установите его и используйте. Найти

Вот хороший пример того, что вы пытаетесь достичь.

Excel VBA Найти номер строки соответствующего значения

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...