在 VBA 中使用输入框作为过滤条件
Using Inputbox for Filter Criteria in 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:$H").AutoFilter Field:=7, Criteria1:=">" & iuval, _
Operator:=xlOr, Criteria2:="<" & ilval
End Sub
将 iuval
的数据类型更改为 double
否则 VBA 会将您的输入自动转换为 integer
这意味着在您的情况下它将把您的输入转换为 - 4 或 -5。
Dim iuval As Integer
应该是 Dim iuval As double
对 Dim ilval As Integer
执行相同的操作。
这可能很蹩脚,但我在 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:$H").AutoFilter Field:=7, Criteria1:=">" & iuval, _
Operator:=xlOr, Criteria2:="<" & ilval
End Sub
将 iuval
的数据类型更改为 double
否则 VBA 会将您的输入自动转换为 integer
这意味着在您的情况下它将把您的输入转换为 - 4 或 -5。
Dim iuval As Integer
应该是 Dim iuval As double
对 Dim ilval As Integer
执行相同的操作。