UPDATE: Ответил нижемс проект VBA не изменяя ячеечная Color
В MS Project 2013 Pro, я создал пользовательское поле "Pri" (для приоритета) из поля "Number10". Затем я написал приведенную ниже процедуру VBA, которая активируется с помощью кнопки в форме VBA, чтобы проверить значение Pri и соответственно установить цвет ячейки. Он работает, за исключением ...
Когда я устанавливаю значение Pri и запускаю процедуру, а затем сбрасываю значение Pri и повторно запускаю процедуру, она не «принимает». Я могу сказать, что он нашел поле, обнаружил значение «Выбрать случай» и выполнил оператор присваивания CellColor. Но цвет ячейки не изменяется в представлении диаграммы Ганта.
Я ищу шаблон здесь, и что я вижу:
1) Если я обновлю Pri поля (т.е. изменить значение после первого дополнения), а затем обновить другое задачи поля Pri , он немедленно применяет фон к тому, который я хотел сначала изменить.
2) недавно обновленная камера Pri имеет слабый синий фон; это какой-то «предварительный» статус? Что не может быть прочитано VBA? Если да, то как «обновить» или что угодно, чтобы приложение могло принять значение?
=> это, как представляется, «Change Highlighting», описанное here; что с этим можно сделать?
3) Если я открываю и закрываю раздел «Контур», содержащий задание, он правильно устанавливает цвет. Опять же, какое-то обновление? Больше изменений Выделение?
Я добавил ScreenUpdating = False/True строки в начале, в ответ на отчет об ошибке, однако, никакой радости.
==> Любые предложения?
Sub SetPriorityColors()
ScreenUpdating = False
ScreenUpdating = True
Set ts = ActiveProject.Tasks
For n = 1 To ts.Count
If Not ts(n) Is Nothing Then
ts(n).OutlineShowAllTasks
End If
Next n
For n = 1 To ts.Count
If Not ts(n) Is Nothing Then
Set tsk = ts(n)
wrkName = tsk.Name
wrkID = tsk.ID
SelectTaskField Row:=wrkID, Column:="Number10", RowRelative:=False
If wrkID = 23 Then
a = 1
End If
Select Case tsk.Number10
Case Is >= 9
Font32Ex CellColor:=&HFF99CC
Case Is >= 8
Font32Ex CellColor:=&H66CCFF
Case Is >= 7
Font32Ex CellColor:=&H66FFFF
Case Is = 0
Font32Ex CellColor:=&HFFFFFF
End Select
End If
Next n
SelectTaskField Row:="1", Column:="Number10", RowRelative:=False
End Sub