excel - 如何从 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)
'''
解决方案
- 不要
MSProject
用作变量名,因为它是库的名称。对project
. 典型的变量名称类似于prjApp
andprj
。 - 你有一个名为“JIRA Issue Key”的企业字段吗?字段名称必须是有效的现有字段。
- 中的
Name
参数是TableEditEx
指表的名称,而不是项目的名称。 - 编辑表格后,您需要应用更改
TableApply
以下是代码在默认视图(甘特图)中将现有字段添加到默认表(条目)的外观:
prjApp.TableEditEx Name:="Entry", TaskTable:=True, NewFieldName:="Text1", Title:="Custom title here", Width:=15, ShowInMenu:=True, ColumnPosition:=1
prjApp.TableApply "Entry"
有关更多信息,请参阅文档。
推荐阅读
- android - AAPT:错误:找不到资源 android:attr/colorError 并且找不到样式属性“android:attr/keyboardNavigationCluster”
- google-maps - 无法在 Google 地图信息窗口中获取按钮以推送到路由器
- sql - 如何在 Oracle 中使用 PL/SQL 或 SQL 查询将新行插入到查询结果中?
- c# - Cancellationtoken 异常未执行
- listview - 颤振:到达嵌套列表视图的底部时继续在顶部列表视图中滚动
- api - 如何使用 OpenSSL 修复“在发出证书请求的配置问题中找不到‘distinguised_name’”错误?
- c# - 无法使最小的 ASP .NET Core 3.1 WebSocket 示例正常工作
- postgresql - 使用查询中的值来定义使用 sequelize 的子查询的位置
- security - 朋友的公共 IP 地址被抢了,他很偏执。我应该告诉他怎么做?
- node.js - 为什么 Chrome 开发者工具中没有显示 node.js?