Return 使用 VBA 的 MS Project 活动单元格上方任务中的值

Return the value in the task above the active cell in MS Project using VBA

我熟悉 Excel 中的 VBA,但我一直不知道如何 return 使用 MS Project 中高于 activecell 的值VBA。在 Excel 中,我只会使用 activecell.offset(-1,0).value.

在下面的代码中,我(错误地)使用了 OFFSET,因此需要一些可以替换该代码的东西才能使我的宏正常工作。

当 Text4 列中的值针对下一个任务发生更改(否则缩进)时,代码正在尝试添加新的任务摘要。

提前致谢!

Sub Add_Task_Summaries()
'Add a Summary Task when the text in the Learning Path column changes and 
indent otherwise
Dim T As Task
Dim LP As String
Dim RowNo As Long
Dim TU As Integer

For Each T In ActiveProject.Tasks

If T.Text4 <> "" And T.Summary = False Then
    If T.Text4 = T.Text4.Offset(-1, 0) Then 'INCORRECT SYNTAX
        T.OutlineIndent
    ElseIf T.Text4 <> T.Text4.Offset(-1, 0) Then 'INCORRECT SYNTAX
        LP = T.Text4
        T.Add Name:=LP, before:=ActiveSelection.Tasks
    End If
End If
Next T

End Sub

您可以 select MS Project 中的单元格,方法是使用 Application 对象的各种 Select 方法(例如 SelectCellDown, SelectCellRight, SelectBeginning)。但是你也可以使用这样的方法:

Sub Add_Task_Summaries()
    'Add a Summary Task when the text in the Learning Path column changes
    'and indent otherwise

    Dim T As Task
    Dim S As Task
    Dim LP As String

    For Each T In ActiveProject.Tasks
        If T.Text4 > "" And Not T.Summary Then
            If LP <> T.Text4 Then
                LP = T.Text4
                Set S = ActiveProject.Tasks.Add(LP & " - Summary", T.ID)
                S.OutlineLevel = T.OutlineLevel
            End If
            T.OutlineIndent
        End If
    Next T

End Sub