2013-06-18 45 views
0

我有一個數據列表,需要根據兩個條件刪除一些行。第一個標準是第五列中需要有一個零。第二個標準是字段3中的日期需要大於表單上先前收集的用戶輸入變量。如果符合這兩個條件,那麼該行應該被刪除。如果我註釋掉第二個標準,符合第一個標準的行將被正確刪除,所以我知道它與日期有關。我還確保用戶輸入變量,並且電子表格上的日期格式相同。 下面是代碼基於大於用戶輸入變量的日期刪除行的VBA代碼

Dim PYE As Date 
Dim vQuestion 
vQuestion = Application.InputBox(Prompt:="What is the plan year end date?") 
If IsDate(vQuestion) Then 
PYE = DateValue(vQuestion) 
Else 
MsgBox "Invalid date" 
End If 
If vQuestion = "False" Then Exit Sub 



With ActiveSheet.UsedRange 
    .AutoFilter Field:=5, Criteria1:="0", Operator:=xlAnd 
    .AutoFilter Field:=3, Criteria1:=">" & PYE 
    .Offset(1, 0).EntireRow.Delete 
    .AutoFilter 
End With 

我一直在谷歌上搜索了一會兒和我來了,沒有進步,所以任何幫助,將不勝感激。

回答

0

VBA需要#MM/DD/YYYY#定義的日期。不一定採用這種格式,但必須使用日期前後的#號。你有沒有嘗試在你的配方中粘貼那些?

可能:

AutoFilter Field:=3, Criteria1:=">#" & PYE & "#" 
+0

這工作就像一個魅力。我試圖把#放在PYE附近,但我沒有考慮把它放在你所做的地方。謝謝 – user2497891

+0

如果你不介意,請給我答案的「接受答案」複選標記。我會很感激! :O) –