autofilter使用双变量标准vba

时间:2014-11-01 19:45:58

标签: excel vba double autofilter

所以我需要过滤掉小于或等于单元格值(6,3)的所有价格(即50.60)。

这是我的代码,但由于某种原因,它不适用于双值。例如,如果我将单元格(6.3)的值从50.60更改为50,则代码可以正常工作。

任何提示?

Sub cost()

Dim price As Double

'Application.DecimalSeparator = "."
'Application.ThousandsSeparator = ","
'Application.UseSystemSeparators = True

Range("B2:C2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.NumberFormat = "0.00"

price = Cells(6, 3).Value

 Range("A1:C1").Select
 Selection.AutoFilter
 ActiveSheet.Range("$A$1:$C$12").AutoFilter Field:=1, Criteria1:="1"
 ActiveSheet.Range("$A$1:$C$12").AutoFilter Field:=3, Criteria1:="<=" & price
End Sub

这是我的工作表:

hour consumption    price
1    20,50          0,00
1    50,10          1,30
1    70,60          1,50
1    10,70         30,60
1    15,90         50,60
1    30,80         56,20
1    60,30         60,30
2    45,20          0,00
2    80,60         11,30
2    50,70         20,40

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

这条线对我有用。您只需将price转换为string,然后再将其连接到"<="

ActiveSheet.Range("$A$1:$C$12").AutoFilter Field:=3, Criteria1:="<=" & Str(price)