Я получаю # ЗНАЧЕНИЕ!при попытке запустить этот код.Зачем? - PullRequest
0 голосов
/ 31 мая 2019

Я пытался написать упрощенные формы того, что я делаю, в другом файле, и они работали, поэтому я не понимаю, почему это не так.Я только что определил все как вариант, и он все равно не будет работать.Переменные type1 и type2 являются строками, слова - это диапазон строк, а числа - это диапазон чисел.Код находит входные строки в диапазоне строк и выполняет вычисления с соответствующими числами из диапазона номеров.

Function effectiveness(type1 As Variant, type2 As Variant, words As Range, numbers As Range) As Variant

    Dim Types() As Variant
    Types = words
    Dim Multipliers() As Variant
    Multipliers = numbers

    Dim i As Variant
    Dim h As Variant
    Dim col As Variant
    col = UBound(Types) - LBound(Types) + 1
    Dim d As Variant
    d = Excel.WorksheetFunction.Index(words, i)
    Dim f As Variant
    f = Excel.WorksheetFunction.Index(words, h)

    For i = 1 To col

        If StrComp(type1, d, vbBinaryCompare) = 0 Then '(0 means they match)
            Dim sum As Variant
            sum = 0

            If StrComp(type1, type2, vbBinaryCompare) = 0 Then
                Dim x As Variant
                Dim a As Variant
                For x = 1 To col
                    a = Excel.WorksheetFunction.Index(numbers, x, i)
                    sum = sum + a
                Next x

            Else
                For h = 1 To col

                    If StrComp(type2, f, vbBinaryCompare) = 0 Then

                        Dim y As Variant
                        Dim b As Variant
                        Dim c As Variant
                        For y = 1 To col
                            b = Excel.WorksheetFunction.Index(numbers, y, h)
                            c = Excel.WorksheetFunction.Index(numbers, y, i)
                            sum = sum + (b * c)
                        Next y

                    End If

                Next h

            End If

        End If

    Next i

    effectiveness = sum

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