MS Project VBA如何避免筛选器无返回结果时的报错问题
问题原因
你当前的判断逻辑执行顺序有误:当筛选器无匹配结果时,ActiveSelection本身就是无效对象,你在访问其.Tasks属性前没有做有效性校验,直接访问就会抛出424「要求对象」错误。
修复方案
在访问ActiveSelection前加入临时错误捕获,先尝试获取Tasks集合,再判断是否为空:
Application.SelectSheet '需选中工作表以保证ActiveSelection正常运行 ' 新增临时错误捕获,避免无匹配任务时抛出424错误 Dim objTasks As Object On Error Resume Next Set objTasks = ActiveSelection.Tasks On Error GoTo 0 ' 重置默认错误处理逻辑,避免影响后续代码的错误捕获 If objTasks Is Nothing Then GoTo NextResource
额外优化建议
- 你当前在
FilterApply后的错误判断可以保留,和上述新增的逻辑互不冲突 - 如果需要判断任务数量,可在确认
objTasks不为空后,再访问objTasks.Count属性
内容的提问来源于stack exchange,提问作者Miles
相关产品推荐
相关产品推荐

