我正在使用Excel 2007.我已经构建了一个userform,它将数据写入工作簿中的多个工作表。在工作表名称Reports
中,我想创建一个命令按钮Cmdtomorrows
,以删除报表单上除tomorrows date (Now() + 1, "DD/MM/YYYY")
之外的所有行。
日期记录在Column A
:
示例:tomorows日期为21/11/2011
所以我希望命令按钮删除以日期19和10/11/2011
开头的行的条目。我没有尝试为此录制宏。宏通常让我先想到按钮的VBA代码。在以前的问题中,我已经能够发布我的代码并得到了帮助,但不知道从哪里开始。
我无法显示任何样本表。
答案 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