0

有谁知道这意味着什么

Set oProjTasks = ActiveSelection.Tasks

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

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

我该如何解决?

4

2 回答 2

2

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

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

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

于 2012-03-09T20:19:49.857 回答
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

这会处理错误,但正如史蒂夫已经表示需要更多的工作来集成代码。

您必须按照代码进行更改以处理 oProjTasks 在预期具有某些值的情况下为空。否则,您可能会在 oProjTasks 被发现为空的地方看到更多错误。

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

于 2012-03-13T09:54:25.420 回答