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
我熟悉 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