我有一个已经完成或没有完成的任务的excel文件,用列中的是或否表示。最终,我对不同列中的数据感兴趣,但我想设置代码,以便忽略已完成任务的那些行。到目前为止,我已经定义了包含yes/no的列范围,但我不知道在这个范围上运行哪个命令。我想我要基于列C的值从另一个范围的值中定义一个范围
Option Explicit
Sub Notify()
Dim Chk As Range
Dim ChkLRow As Long
Dim WS1 As Worksheet
On Error GoTo WhatWentWrong
Application.ScreenUpdating = False
'--> If the text in column C is Yes then Ignore (CountIF ?)
'--> Find last cell in the column, set column C range as "Chk"
Set WS1 = Sheets("2011")
With WS1
ChkLRow = .Range("C" & Rows.Count).End(xlUp).Row
Set Chk = .Range("C1:C" & ChkLRow)
End With
'--> Else Check date in column H
'--> Count days from that date until today
'--> Display list in Message Box
Reenter:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Exit Sub
WhatWentWrong:
MsgBox Err.Description
Resume Reenter
Application.ScreenUpdating = True
End Sub
难道也许更容易简单地定义基于C列的值一个范围,而不是首先定义列C的范围内定义新范围然后重新定义它?
感谢
如何使用自动过滤器,然后获得可见范围?你需要使用VBA吗?您也可以使用公式来获取说“不”的总天数。 – 2012-04-25 20:07:09
我试图达到的最终结果是显示一个消息框,供用户根据请求显示尚未完成任务的天数。我不想让完成的任务始终处于隐藏状态,并且最终用户无法自行使用过滤器,因此使用VBA可以在请求时为他们执行过滤。 – 2012-04-25 20:12:44
所以你想要Col H的未完成日总数? – 2012-04-25 20:14:30