【问题标题】:How to programmatically change background color in MS Project 2007 cell?如何以编程方式更改 MS Project 2007 单元格中的背景颜色?
【发布时间】:2012-12-31 15:25:12
【问题描述】:

我正在尝试使用 C# 自动化一些 MS Project 功能,但找不到如何更改特殊任务单元格的背景和字体颜色的解决方案。

我在该代码示例中枚举项目中的所有任务,如果 statemet 为真,我想更改当前单元格颜色

foreach(Task t in Project.Tasks)
{
    if(t.Name=="TaskName")
    {
        //I want to change back color of current cell here
    }
}    

【问题讨论】:

    标签: c# ms-project office-automation


    【解决方案1】:

    最简单的部分是如何选择一个单元格并更改单元格的颜色:Application.SelectTaskCell 选择一个单元格link to MSDNApplication.ActiveCell.CellColor 设置单元格的颜色link to MSDN

    但有一个棘手的部分:Application.SelectTaskCell 接受rowId 作为第一个参数,并且无法通过任何任务属性获取行 ID。所以我在我的测试样本中做了什么:

    1. 通过切换到“所有任务”过滤器禁用过滤器(Project.TaskFilters 收藏)
    2. 禁用分组 (Application.GroupApply("No Group"))
    3. 禁用自动筛选 (Application.AutoFilter = False)
    4. 按 ID (Application.Sort(Key1:="ID", Ascending1:=True)) 对所有内容进行排序

    之后,Task.ID 应该非常接近任务行的 Id。您可以通过ActiveCell.Task 仔细检查选择了哪些任务,但这取决于您。

    【讨论】:

    • 非常感谢,新年快乐!你帮了我!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多