1
所以我需要過濾所有的價格小於或等於單元格的值(6,3)(即50.60)。使用雙變量標準自動過濾器vba
這是我的代碼,但由於某些原因,它不適用於double值。例如,如果我將單元格(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
感謝您的幫助
不能說沒有更多的測試,但VBA解釋您的小數點分隔符是否需要,所以50,60被解釋爲50十進制6?你的國家/語言設置是什麼? – 2014-11-01 20:32:17
我的國家/語言設置是葡萄牙語(PT)。我認爲問題在於VBA沒有正確解釋單元格的值(6,3)。但是,例如,如果我測試msgbox(價格)它給了我正確的價值。 我已經嘗試將Decimal.Separator從「,」更改爲「。」,但它沒有工作:\ – pedropg 2014-11-01 21:22:29
我看你有一個解決方案。 Boa sorte – 2014-11-01 23:19:15