将任务与行相关联
Associate task with row
我构建了一个表单,其中有一个“完成”按钮,可以将所选单元格的字体更改为灰色和删除线。
Sub SetTaskNameFontDone()
Dim T As Task
If Not (ActiveSelection.Tasks Is Nothing) Then
For Each T In ActiveSelection.Tasks
' Test for blank task row
If Not (T Is Nothing) Then
SelectTaskField Row:=T.ID, Column:="Name", RowRelative:=False
Font32Ex Color:=8355711
Font32Ex Strikethrough:=True
End If
Next T
End If
End Sub
问题是行号似乎是物理位置号,即从 sheet 顶部开始的位置。因此,如果您“关闭”具有子任务的任务,则行号将不再与任务 ID 相同,并且格式将应用于错误的行。
Case 1: Sheet when task is open:
VBA Row # TaskID Task
1 1 ParentTask1 (open)
2 2 SubTask1-1
3 3 ParentTask2
Case 2: Sheet when task is closed (note change in row number)
VBA Row # TaskID Task
1 1 ParentTask1 (closed)
2 3 ParentTask2
两种可能的方法:
我可以在例程开始时执行 OutlineShowAllTasks,但这会改变大纲的显示方式。我还没有找到打开哪些任务的指标,所以我无法记住和恢复它,作为对 OutlineShowAllTasks 的补偿。
保存目标任务ID,然后循环遍历所有行,比较每一行的任务ID。但是,我还没有找到遍历所有行并从行中获取任务 ID 的方法。
如何将所选任务与正确的行相关联?
在这里收到回复:
Sub SetTaskNameFontDone()
Dim T As Task
For Each T In ActiveSelection.Tasks
Font32Ex Color:=8355711
Font32Ex Strikethrough:=True
Next T
End Sub
我构建了一个表单,其中有一个“完成”按钮,可以将所选单元格的字体更改为灰色和删除线。
Sub SetTaskNameFontDone()
Dim T As Task
If Not (ActiveSelection.Tasks Is Nothing) Then
For Each T In ActiveSelection.Tasks
' Test for blank task row
If Not (T Is Nothing) Then
SelectTaskField Row:=T.ID, Column:="Name", RowRelative:=False
Font32Ex Color:=8355711
Font32Ex Strikethrough:=True
End If
Next T
End If
End Sub
问题是行号似乎是物理位置号,即从 sheet 顶部开始的位置。因此,如果您“关闭”具有子任务的任务,则行号将不再与任务 ID 相同,并且格式将应用于错误的行。
Case 1: Sheet when task is open:
VBA Row # TaskID Task
1 1 ParentTask1 (open)
2 2 SubTask1-1
3 3 ParentTask2
Case 2: Sheet when task is closed (note change in row number)
VBA Row # TaskID Task
1 1 ParentTask1 (closed)
2 3 ParentTask2
两种可能的方法:
我可以在例程开始时执行 OutlineShowAllTasks,但这会改变大纲的显示方式。我还没有找到打开哪些任务的指标,所以我无法记住和恢复它,作为对 OutlineShowAllTasks 的补偿。
保存目标任务ID,然后循环遍历所有行,比较每一行的任务ID。但是,我还没有找到遍历所有行并从行中获取任务 ID 的方法。
如何将所选任务与正确的行相关联?
在这里收到回复:
Sub SetTaskNameFontDone()
Dim T As Task
For Each T In ActiveSelection.Tasks
Font32Ex Color:=8355711
Font32Ex Strikethrough:=True
Next T
End Sub