ActiveSelection.Tasks出错

时间:2012-03-09 19:25:52

标签: vba excel-vba word-vba ms-project excel

有谁知道这意味着什么

Set oProjTasks = ActiveSelection.Tasks

我有一个从MS项目生成状态报告的宏,并将它们直接导出到MS Word中。它工作时它是一个光滑的工具。

当我现在运行时,它会抛出“运行时错误'424':此时需要对象”。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您正在显示的代码是一个set语句,即将对象ProjTasks设置为等于在消息框中选择的任务。 ActiveSelection属性返回表示活动选择的选择对象。 可能是您遇到的问题是没有选择任何项目,在这种情况下它会抛出一个可捕获的错误代码424.有一个代码片段,您可以从MSDN修改,以防止此类错误发生的历史。

以下是MSDN文章的链接...请记住不要逐字使用此代码,而是修改它以使用宏。

http://msdn.microsoft.com/en-us/library/aa169315%28v=office.11%29.aspx

答案 1 :(得分:0)

您可以尝试在set语句周围包装错误检查。我在一个非空项目文件上写了一个小宏:

Sub Testing()
  On Error GoTo ActiveSelectionErrHandler:
  Set oProjTasks = ActiveSelection.Tasks
  If oProjTasks Is Nothing Then
    MsgBox "No tasks in current project"
  End If
ActiveSelectionErrHandler:
  Set oProjTasks = ThisProject.Tasks 'or something like that
  Resume Next
End Sub

这可以处理错误,但正如Steve已经表示需要更多工作来集成代码。

您必须按照代码进行更改以处理oProjTasks为空的位置,其中应该有一些值。否则,您会发现更多错误,可能是oProjTasks被发现为空。

另一种替代解决方案可能是在选择项目后启动宏,因为如果选择了某些内容,您引用的代码将正常工作。