有谁知道这意味着什么
Set oProjTasks = ActiveSelection.Tasks
我有一个从MS项目生成状态报告的宏,并将它们直接导出到MS Word中。它工作时它是一个光滑的工具。
当我现在运行时,它会抛出“运行时错误'424':此时需要对象”。
我该如何解决这个问题?
答案 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被发现为空。
另一种替代解决方案可能是在选择项目后启动宏,因为如果选择了某些内容,您引用的代码将正常工作。