首页 > 解决方案 > 如何从 Excel VBA 在 Microsoft Project 中添加新列?

问题描述

我现在正在用 VBA 在 Excel 中编写一个 Sub。我已经成功打开了一个 MS Project 项目。现在,我想通过 Excel VBA 在 MS Project 文件中添加一个新列。我该怎么做呢?

'''vba

Dim MSProject As MSProject.Application
Dim project As MSProject.project

Dim wb As Workbook
Dim ws As Worksheet

Set wb = ThisWorkbook
Set ws = Sheets("Sheet1")
wb.Activate
ws.Select

' Open Microsoft Project project
Set MSProject = CreateObject("MSProject.Application")
With MSProject
    .FileOpen "test.mpp"
    .Application.Visible = True
End With

Set project = MSProject.ActiveProject

' Add column in Project (this syntax does not work)
MSProject.TableEditEx(Name:="test.mpp", TaskTable:=True, _NewFieldName:="JIRA Issue Key", Title:="JIRA Issue Key", Width:=15, _ShowInMenu:=True, _ColumnPosition:=1)

'''

标签: excelvbams-project

解决方案


  1. 不要MSProject用作变量名,因为它是库的名称。对project. 典型的变量名称类似于prjAppand prj
  2. 你有一个名为“JIRA Issue Key”的企业字段吗?字段名称必须是有效的现有字段。
  3. 中的Name参数是TableEditEx指表的名称,而不是项目的名称。
  4. 编辑表格后,您需要应用更改TableApply

以下是代码在默认视图(甘特图)中将现有字段添加到默认表(条目)的外观:

prjApp.TableEditEx Name:="Entry", TaskTable:=True, NewFieldName:="Text1", Title:="Custom title here", Width:=15, ShowInMenu:=True, ColumnPosition:=1
prjApp.TableApply "Entry"

有关更多信息,请参阅文档


推荐阅读