用VBA筛选日期区间

以Sheet1B5单元格作为标准,Sheet2AC列所对应的日期作为目标,将日期大于标准值的数据删掉(留下小于或等于),怎么设计宏语句?... 以Sheet1 B5单元格作为标准,Sheet2 AC列所对应的日期作为目标,将日期大于标准值的数据删掉(留下小于或等于),怎么设计宏语句? 展开
 我来答
mzz9060
2018-01-25 · TA获得超过1321个赞
知道小有建树答主
回答量:773
采纳率:84%
帮助的人:192万
展开全部

答:不确定你说的删除是清除单元格数据还是删除整行。我暂且以删除整行为例。见代码:

Sub Demo()
    Dim StandardDate As Date
    Dim LastRow As Long
    Dim i As Long
    StandardDate = Sheets("Sheet1").Range("B5")
    With Sheets("Sheet2")
        LastRow = .Range("AC" & Cells.Rows.Count).End(xlUp).Row
        For i = LastRow To 2 Step -1
            If .Cells(i, "AC") > StandardDate Then
                .Cells(i, "AC").EntireRow.Delete
            End If
        Next i
    End With
End Sub
chyzyyj
2018-01-25 · TA获得超过2527个赞
知道大有可为答主
回答量:3319
采纳率:76%
帮助的人:987万
展开全部
Sub 删除记录()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
n = Range("AC65536").End(3).Row
Sheets("sheet1").[B5].NumberFormatLocal = "mm/dd/yyyy"
Columns("AC:AC").NumberFormatLocal = "mm/dd/yyyy" '强制把sheet1中的B5单元格格式和sheet1中的AC列定义为日期型,若它们已经是日期型的,可以删除这两行。
For i = 2 To n
If Cells(i, 29) > Sheets("sheet1").[B5] Then Rows(i).Delete
Next i
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
眯住眼串针
科技发烧友

2018-01-25 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:1.1万
采纳率:58%
帮助的人:3165万
展开全部
Sub test()
Dim mytemp, myrow
mytemp = Sheet1.Range("B5")
myrow = Range("AC65536").End(xlUp).Row
For i = myrow To 2 Step -1
    If Range("AC" & i) > mytemp Then
        Rows(i).Delete
    End If
Next
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式