Excel считает строки, рассматривая объединенные строки как один - PullRequest
1 голос
/ 25 июня 2019

Я пытаюсь посчитать строки в электронной таблице с объединенными строками. По умолчанию функция ROWS в Excel считает каждую отдельную ячейку, но мне нужна функция для обработки объединенных ячеек как одной строки.

Ответы [ 2 ]

2 голосов
/ 25 июня 2019

VBA скрипт, кажется, единственный способ сделать это.Ниже приведен грубый пример, который работает (хотя, вероятно, не удается в угловых случаях, связанных с несколькими столбцами):

Public Function MergedRowsCount(r As Range) As Long
    MergedRowCount = 0
    For i = 1 To r.Rows.Count
        MergeRowSize = r(i).MergeArea.Rows.Count
        If MergeRowSize > 1 Then
            i = i + MergeRowSize - 1
        End If
        MergedRowCount = MergedRowCount + 1
    Next i
    MergedRowsCount = MergedRowCount
End Function

enter image description here

0 голосов
/ 25 июня 2019

Это может помочь вам:

Код:

Option Explicit

Sub test()

    Dim rng As Range, cell As Range
    Dim mrgCells As Long, UnmrgCells As Long, TotalCells As Long, mrgRows As Long, mrgColumns As Long, i As Long

    With ThisWorkbook.Worksheets("Sheet1")

        Set rng = .Range("A1:B10")

        'Total number of cells in a range(DOES NOT includes merge cells)
        TotalCells = rng.Cells.Count

        UnmrgCells = 0
        mrgColumns = 0
        mrgRows = 0

        For Each cell In rng

            If cell.MergeCells Then
                mrgCells = mrgCells + 1
            Else
                UnmrgCells = UnmrgCells + 1
            End If

        Next cell

        For i = 1 To 10

            If .Range("A" & i).MergeArea.Rows.Count > 1 Then
                mrgRows = mrgRows + 1
            End If

            If .Range("A" & i).MergeArea.Columns.Count > 1 Then
                mrgColumns = mrgColumns + 1
            End If

        Next i

        Debug.Print "Total Number of Cells: " & TotalCells & vbNewLine & _
                    "Total Number of Merged Cells: " & mrgCells & vbNewLine & _
                    "Total Number of Merged Rows: " & mrgRows & vbNewLine & _
                    "Total Number of Merged Columns: " & mrgRows & vbNewLine & _
                    "Total Number of Non Merged cells: " & UnmrgCells

    End With

End Sub

Результаты:

enter image description here

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