首页 文章

EXCEL代码整理报告表

提问于
浏览
2

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

日期记录在 Column A

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

我无法显示任何样本表 .

1 回答

  • 4

    此代码可以附加到您的命令按钮 . 它循环遍历工作表“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
    

相关问题