настроение твитов VBA - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь создать функцию, которая определяет настроение твитов в VBA. Функция должна проверять каждое слово в твите, и если слово существует в качестве одного из ключевых слов в положительном или отрицательном списке на моем листе Excel (показано как PositiveRng и негативныйRng), это повлияет на оценку настроения, отображаемую функцией. К положительному ключевому слову следует добавить 10 к оценке настроения, а к отрицательному - 10. Вот код, который у меня есть до сих пор

Function sentimentCalc(tweet As String) As Integer

Dim positiveRng As Range
Dim negativeRng As Range

Set positiveRng = Worksheets("Keywords").Range("A2:A54")
Set negativeRng = Worksheets("Keywords").Range("B2:B54")

Dim twords As Variant

twords = Split(tweet, "  ")

Dim Result As Integer

For i = LBound(twords) To UBound(twords)
If StrComp(twords(i), positiveRngCell.Value, vbTextCompare) = 0 Then
Result = Result + 10
ElseIf StrComp(twords(i), negativeRngCell.Value, vbTextCompare) = 0 Then
Result = Result - 10
End If
Next i

sentimentCalc = Result

End Function

По какой-то причине я продолжаю получать #NAME? ошибка, если бы кто-то мог помочь мне с этим, это было бы очень признательно. Спасибо!

1 Ответ

0 голосов
/ 26 марта 2020

Пожалуйста, поместите следующее в стандартный модуль кода ...

Public Function sentimentCalc&(tweet$, posKW As Range, negKW As Range)
    Dim res&, w

    w = Split(tweet)

    For i = 0 To UBound(w)
        Select Case True
            Case CheckKeywords(w(i), posKW): res = res + 10
            Case CheckKeywords(w(i), negKW): res = res - 10
        End Select
    Next

    sentimentCalc = res

End Function

Private Function CheckKeywords(val, r As Range) As Boolean
    CheckKeywords = r.Parent.Evaluate("iferror(match(""" & val & """," & r.Address & ",), 0)")
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...