Макрос Excel 2010 не находит значения - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть макрос, который ищет, но не находит «7» (If Right (pair, 2) = 7 Then). Дело в том, что когда я меняю номер на 11 или 12 и т. Д. (Любые две цифры) и findXX в коде, он работает нормально. Кто-нибудь знает, что происходит и какие именно изменения мне нужно сделать.

Параметр Явный

Sub DivideSomeStuff ()

Dim pair As Range, accumulator As Range
Dim findSeven As Double
Dim remainder As Long

For Each pair In Range("B30, F30, J30")
    If Right(pair, 2) = 7 Then
        If pair.Offset(0, 2) <= 12 Then
            remainder = 0
        Else
            remainder = pair.Offset(0, 2) Mod 10
        End If

        findSeven = (pair.Offset(0, 2) - remainder) / 10

        For Each accumulator In Range("A36, D36, G36, J36, M36, A40, D40, G40, J40, M40")
            If accumulator.Offset(-1, 0) = Val(Left(pair, InStr(pair, "-") - 1)) Then
                accumulator.Value = accumulator.Value + remainder
            End If
            accumulator.Value = accumulator.Value +  findSeven
        Next accumulator
    End If
Next pair

End Sub

1 Ответ

0 голосов
/ 29 апреля 2019

Измените его с ...

Right(pair, 2) = 7

... на ...

Right(pair, 1) = 7

В настоящее время вы получаете 2 правильных значения, когда 7 - это один символ.

Возможно, вам также понадобится поставить кавычки вокруг 7, посмотрите, работает ли без них.

...