有谁知道这意味着什么
Set oProjTasks = ActiveSelection.Tasks
我有一个从 MS 项目生成状态报告并将它们直接导出到 MS Word 的宏。它在工作时是一个漂亮的工具。
当我现在运行它时,此时它会抛出“运行时错误'424':需要对象”。
我该如何解决?
有谁知道这意味着什么
Set oProjTasks = ActiveSelection.Tasks
我有一个从 MS 项目生成状态报告并将它们直接导出到 MS Word 的宏。它在工作时是一个漂亮的工具。
当我现在运行它时,此时它会抛出“运行时错误'424':需要对象”。
我该如何解决?
您正在显示的代码是一个 set 语句,即将对象 ProjTasks 设置为等于在消息框中选择的任务。ActiveSelection 属性返回一个表示活动选择的选择对象。可能是您遇到了没有选择项目的问题,在这种情况下,它会抛出一个可捕获的错误代码 424。您可以从 MSDN 修改一个代码片段,它可以防止此类错误发生发生。
这是 MSDN 文章的链接……请记住不要逐字使用此代码,而是修改它以使用您的宏。
http://msdn.microsoft.com/en-us/library/aa169315%28v=office.11%29.aspx
您可以尝试将错误检查包装在 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 被发现为空的地方看到更多错误。
另一种替代解决方案可能是在选择项目后启动宏,因为如果选择了某些内容,您引用的代码将正常工作。