首页 > 解决方案 > 在 VBA 中使用输入框作为过滤条件

问题描述

这可能很蹩脚,但我在使用输入框过滤条件时需要 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

标签: excelvbafiltercriteriainputbox

解决方案


将数据类型更改为iuvaldouble否则 VBA 将自动将您的输入转换为integer,这意味着在您的情况下,它将您的输入转换为 -4 或 -5。

Dim iuval As Integer 应该Dim iuval As double

对 做同样的事情Dim ilval As Integer


推荐阅读