调用 MS 项目任务的唯一 ID 时出现 Excel VBA 错误



在Excel工作表中,我正在使用VBA循环访问MS Project文件中的任务。

发现我的代码运行良好,直到我遇到没有名称但错误让我感到困惑的 MS Project 任务。当我删除这些未命名的任务时,错误消失了。

我尝试添加一个 if 语句:If prj.Tasks(i).UniqueID Is Nothing Then来捕获此错误,但我收到一个Type mismatch错误。

Dim i As Integer
Dim TaskID As Long
Dim ExcelRow As Integer
For i = 1 To prj.Tasks.Count
    TaskID = prj.Tasks(i).UniqueID  'This line is highlighted when I debug
    ExcelRow = GetRowByUniqueID(TaskID)
    Debug.Print ExcelRow

我的错误是未设置对象变量(错误 91(。我对此感到困惑,因为我的印象是所有任务都有一个唯一的 ID。当我在项目中打开 .mpp 文件时Microsoft我可以看到任务没有名称,但在"唯一 ID"列中具有唯一 ID。

编辑:我刚刚意识到这不是prj.Tasks(i).UniqueID的问题,而是prj.Tasks(i)的问题。当i在任务数范围内时,怎么可能不设置此变量?

好的,所以我刚刚想通了。不知何故,当我遍历所有任务时,其中一些是Nothing的。我真的不明白为什么,但至少,我能够通过 if 语句抓住这一点:

If prj.Tasks(i) Is Nothing Then
    Debug.Print "This is nothing."
Else
    TaskID = prj.Tasks(i).UniqueID
    ExcelRow = GetRowByUniqueID(TaskID)
    Debug.Print ExcelRow

现在,我的代码根本没有中断。

相关内容

  • 没有找到相关文章

最新更新