Использование поля ввода для критериев фильтра в VBA - PullRequest
0 голосов
/ 03 мая 2020

Это может быть неудачно, но мне нужна помощь в VBA при использовании поля ввода для критериев фильтра. Я пытаюсь использовать приведенный ниже код, где пользователю необходимо поместить значения в + & - для соответствующей фильтрации диапазона.

В этом случае я пытаюсь отфильтровать 5 для верхнего диапазона и -4,5 для нижнего диапазона , Сложность, с которой я сталкиваюсь, заключается в том, что когда я набираю -4,9, -4,8, -4,7 или -4,6 для нижнего диапазона, значение считается равным -5, а когда я использую -4,5, -4,4, -4,3 и т. Д. До -4,1 тогда значение считается как -4. Мне нужно, чтобы значение было точным при вводе в поле ввода.

Sub InputFilter()

    Dim iuval As Integer
    Dim ilval As Integer

    iuval = InputBox("Please enter the upper range")
    ilval = InputBox("Please enter the Lower range")


    Range("G1").Select
    ActiveSheet.Range("$A$1:$H$71").AutoFilter Field:=7, Criteria1:=">" & iuval, _
        Operator:=xlOr, Criteria2:="<" & ilval

End Sub

1 Ответ

2 голосов
/ 03 мая 2020

Измените тип данных с iuval на double, иначе VBA автоматически преобразует ваш ввод в integer, что означает, что в вашем случае он преобразует ваш ввод в -4 или -5.

Dim iuval As Integer должно быть Dim iuval As double

Сделайте то же самое для Dim ilval As Integer.

...