Нужна помощь в отладке vba sub для подсчета количества прописных слов в текстовом обзоре - PullRequest
0 голосов
/ 29 апреля 2020

Я работаю над подпрограммой для подсчета количества прописных слов в наборе данных обзоров mov ie (A2: A1001) и вставки результатов в столбец E. У меня проблемы с получением ответа от подпрограммы на электронная таблица. Если кто-нибудь может сообщить мне, что я делаю неправильно, я был бы очень признателен, спасибо!

Sub UppercaseWordCount()
    Dim ArraySplit() As String
    Dim X As Integer
    Dim Count As Integer
    Dim NextWord As String
    Dim Line As Integer
        Count = 0
        ArraySplit = Split("A2:A1001", " ")
        Line = 2

        'splitting each review into an array and using lower
        'and upper bounds with Ucase function to get a count
        'len function used to split up words from single characters

        For X = LBound(ArraySplit) To UBound(ArraySplit)
            NextWord = ArraySplit(X)
            If NextWord = UCase(NextWord) And Len(NextWord) >= 2 Then
                Count = Count + 1
            End If
        Next

        'calling the sub to column E with a count for each review
        Range("E" & Line).Value = Count
        Line = Line + 1
End Sub

1 Ответ

1 голос
/ 29 апреля 2020

Попробуйте это. Вы можете преобразовать в пользовательскую функцию, если делаете несколько раз.

Sub UppercaseWordCount()

Dim ArraySplit() As String
Dim X As Long 'long better than integer
Dim Count As Long
Dim NextWord As String
Dim r As Range

'splitting each review into an array and using lower
'and upper bounds with Ucase function to get a count
'len function used to split up words from single characters
For Each r In Range("A2:A1001") 'loop through defined range
    ArraySplit = Split(r, " ")  'split each cell using space delimiter
    For X = LBound(ArraySplit) To UBound(ArraySplit) 'everything else as before
        NextWord = ArraySplit(X)
        If NextWord = UCase(NextWord) And Len(NextWord) >= 2 Then
            Count = Count + 1
        End If
    Next
    'calling the sub to column E with a count for each review
    r.Offset(, 4).Value = Count 'can use offset rather than defining a new variable
    Count = 0 'reset count
Next r

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