Не могу сосчитать определенный знак в каждой ячейке - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь создать макрос, который должен проверять количество диапазонов, чтобы выяснить, есть ли несколько элементов, разделенных точкой с запятой ; в определенных ячейках.Если он найдет его, то макрос подсчитает, сколько раз этот знак ; появился в каждой ячейке:

Например, в диапазоне («А1»)) этот знак появлялся 3 раза:

apple;orange;guava;malta

Я пробовал до сих пор:

Sub DistributeItemsToColumns()
    Dim cel As Range

    For Each cel In Range("A1:L4")
        If InStr(cel, ";") > 0 Then
            Debug.Print cel  'can't think further
        End If
    Next cel
End Sub

1 Ответ

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

Попробуйте:

Option Explicit

Sub test()

    Dim LastRow As Long, i As Long, arr As Variant
    Dim NumberOfOccu As Long

    With ThisWorkbook.Worksheets("Sheet1")

        'Find last row of column A
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

        'Loop from row 1 to lastrow
        For i = 1 To LastRow

            If InStr(.Range("A" & i).Value, ";") Then
                'Number of characters
                NumberOfOccu = InStr(.Range("A" & i).Value, ";")
                arr = Split(.Range("A" & i).Value, ";")
                .Range("C" & i).Resize(, UBound(arr) + 1) = arr

            End If

        Next i

    End With

End Sub

Результаты:

enter image description here

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