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
在此先感謝
如果你想刪除就可以做到這一點,整個行
有兩種方法可以關注。 1)根據您的標準自動篩選範圍,然後根據結果範圍清除單元格(更快的方法)。 2)循環,然後檢查日期是否落在該範圍之間(較慢的方法) –
@Siddarth Rout:您是否有上述練習的快速方法示例? 開始列= AE,結束列= AF。 – Zenaphor
@Zenaphor使用宏記錄器可以查看在對所涉及的兩列應用自動篩選器時生成的代碼。我將使用過濾器來顯示**將刪除**,然後使用Ctrl +箭頭鍵選擇可見單元格並刪除它們的值。在應用Autofilter後,我會修改刪除代碼[here](http://www.ozgrid.com/forum/showthread.php?t=56802)基本上,從'.Offset(0, - 4)'到'.Offset(0,3)'並追加'.Clear'去除內容。 – Zairja