Microsoft Project宏中的颜色编码任务

时间:2011-05-10 14:25:46

标签: macros ms-project color-coding

这似乎应该是直截了当的,但我看到了一些奇怪的行为。我正在尝试根据标志对我的任务进行颜色编码。它似乎正确地着色任务,但在处理过程中的某些时候,彩色的初始任务将重置为黑色。它发生的任务似乎也相当不一致。以下是我尝试执行此任务的方法(简化为最简单的形式):

Sub ColorTasks()
    Dim t As Task
    For Each t In ActiveProject.Tasks
        SelectRow t.ID, RowRelative:=False
        Font32Ex Color:=2366701
    Next
End Sub

此代码似乎适用于较小的数据集,但此项目包含大约2,000个任务。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

是的我也有类似的问题::

For Each t In tsks
    Select Case t.Text1
        Case "COMPLETE"
            SelectRow Row:=t.ID, RowRelative:=False
            Font32Ex CellColor:=&659B59
        Case "NOT STARTED"
            SelectRow Row:=t.ID, RowRelative:=False
            Font32Ex CellColor:=&862525
        Case "IN PROGRESS"
            SelectRow Row:=t.ID, RowRelative:=False
            Font32Ex CellColor:=&3A3AD4
    End Select
Next t

根据:http://msdn.microsoft.com/en-us/library/ff863572.aspx这应该有效,但每次都会出现语法错误。只有这样我才能使用它才能使用FontEx方法将我限制为只有16种颜色......

答案 1 :(得分:1)

我知道这是一个老问题,但我希望它可能对有类似问题的人有用。

错误在于您忘记在十六进制数字之前添加“H”,所以应该有:

Font32Ex CellColor:=&H3A3AD4
etc

答案 2 :(得分:0)

我发现使用RGB值更容易。
Font32Ex CellColor:=RGB(255, 199, 206) 'Changes fill Font32Ex Color:=RGB(156, 0, 6) ' Changes font color

使用您的代码,我将整个工作表在粉红色的350个任务上变成红色。尽管没有很多额外的工作,但我没有办法在2000年进行测试。