2012-05-01 41 views
3

我收到了大量的信息,並且以開始和結束日期列的形式輸入了一些內容。我想要做的就是說,如果你選擇的日期範圍之外,然後刪除單元格的內容,右邊各3個,左邊各4個。因此開始日期的左側爲-4,結束日期的右側爲3。刪除不在日期範圍內的內容

我開始,但我是有麻煩刪除,如果你不是在我的日期範圍內的細胞

Private Sub cmdFilter_Click() 
' Function to filter dates between text boxes, deletes all not in the range 


Dim stStart As String, stEnd As String 
Dim dbStart As Double, dbEnd As Double 

Application.ScreenUpdating = 0 
'Turn off screen updating until process done so it doesnt flicker 

stStart = txtStart.Value 
stEnd = txtEnd.Value 

If Not IsDate(stStart) Or Not IsDate(stEnd) Then 
    MsgBox "Invalid Dates", vbExclamation, "Input Error" 
    GoTo ExitSub 
End If 

dbStart = CDbl(CDate(stStart)) 
dbEnd = CDbl(CDate(stEnd)) 


' change to highlight cell for time being 

INSERT DELETE IF OUT OF RANGE HERE? 

ExitSub: 
Application.ScreenUpdating = 1 

End Sub 

在此先感謝

如果你想刪除就可以做到這一點,整個行
+3

有兩種方法可以關注。 1)根據您的標準自動篩選範圍,然後根據結果範圍清除單元格(更快的方法)。 2)循環,然後檢查日期是否落在該範圍之間(較慢的方法) –

+0

@Siddarth Rout:您是否有上述練習的快速方法示例? 開始列= AE,結束列= AF。 – Zenaphor

+2

@Zenaphor使用宏記錄器可以查看在對所涉及的兩列應用自動篩選器時生成的代碼。我將使用過濾器來顯示**將刪除**,然後使用Ctrl +箭頭鍵選擇可見單元格並刪除它們的值。在應用Autofilter後,我會修改刪除代碼[here](http://www.ozgrid.com/forum/showthread.php?t=56802)基本上,從'.Offset(0, - 4)'到'.Offset(0,3)'並追加'.Clear'去除內容。 – Zairja

回答

0

使用SpecialCells在拋出一個錯誤的額外列的公式...

我覺得我看到的Excel MVP羅恩德熊先生的網站上:SpecialCells

是你在找什麼?