2

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

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 个任务。有任何想法吗?

4

3 回答 3

1

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

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

Font32Ex CellColor:=&H3A3AD4
etc
于 2013-12-02T23:43:28.500 回答
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 种颜色....

于 2011-06-09T19:26:40.020 回答
0

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

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

于 2019-08-21T13:36:20.623 回答