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