我想知道任务是否实际显示。(可能没有被过滤器显示,或者轮廓结构被折叠)
我想在VBA中处理它。
要确定任务是否可见,真正需要做的就是使用Application对象的Find方法,如果可见则返回True。但是,如果找到,Find方法将活动单元格移动到该任务,并选择整个行。对于最终用户来说,这通常是不希望的。
此函数根据任务是否可见返回True/False,并重置活动单元格。
Function TaskIsVisible(uid As Long) As Boolean
Dim curTaskUID As Long
curTaskUID = ActiveCell.Task.UniqueID
Dim curField As String
curField = ActiveCell.FieldName
TaskIsVisible = Application.Find("Unique ID", "equals", uid)
Application.Find "Unique ID", "equals", curTaskUID
Application.SelectCellLeft
Do While ActiveCell.FieldName <> curField
SelectCellRight
Loop
End Function
注意:任何任务字段都可以与Find方法一起使用,并且该字段不必在当前视图中。在这种情况下,唯一ID是最好的,因为它保证不匹配任何其他任务。