EXCEL代码整理报告表

时间:2011-11-20 16:38:09

标签: excel vba

我正在使用Excel 2007.我已经构建了一个userform,它将数据写入工作簿中的多个工作表。在工作表名称Reports中,我想创建一个命令按钮Cmdtomorrows,以删除报表单上除tomorrows date (Now() + 1, "DD/MM/YYYY")之外的所有行。

日期记录在Column A

示例:tomorows日期为21/11/2011所以我希望命令按钮删除以日期19和10/11/2011开头的行的条目。我没有尝试为此录制宏。宏通常让我先想到按钮的VBA代码。在以前的问题中,我已经能够发布我的代码并得到了帮助,但不知道从哪里开始。

我无法显示任何样本表。

1 个答案:

答案 0 :(得分:3)

此代码可以附加到您的命令按钮。它循环遍历工作表“Reports”上的所有“已用”行,如果A列中的值不是明天的日期,则删除整行。请注意使用Fix函数截断任何时间组件。如果要保留日期为明天日期或更晚日期的行,请更改<>比较只是<。

另请注意,此代码假定A列中的值都是日期。

Sub DeleteAllButTomorrows()
    Dim lRow As Long

    With Worksheets("Reports")
        lRow = 2    ' first row after header row
        Do While lRow <= .UsedRange.Rows.Count
            If Fix(.Cells(lRow, 1).Value) <> Date + 1 Then
                .Rows(lRow).Delete
            Else
                lRow = lRow + 1
            End If
        Loop
    End With
End Sub