excel - 删除不在日期范围内的内容

标签 excel vba

我有大量信息,并且以开始日期列和结束日期列的形式输入了一些信息。我想做的是,如果您超出所选日期范围,则删除单元格的内容,每个单元格右侧 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

提前致谢

最佳答案

如果您想删除整行,您可以使用 SpecialCells 并在额外的列中使用公式来执行此操作,该公式会引发错误...

我想我在 Excel MVP Ron De Bruin 的网站上看到了这一点:SpecialCells

这就是您要找的吗?

关于excel - 删除不在日期范围内的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10396137/

相关文章:

vba - 循环通过报告过滤器来更改可见性不起作用

excel - 从另一个单元格自动填充单元格值

excel - 选择范围时避免焦点变化——Excel

excel - 从 Excel 内容格式化电子邮件正文

VBA - 将字符串中的前三个字符复制到另一个单元格中

vba - 有没有更快的 CountIF

c# - 如何隐藏excel列?

excel - 我应该更好地修改 .ClearContents 的一些代码吗?

excel - 删除 foreach 中的行

excel - 如何将一张表中的单元格内容动态复制到另一张表中?