【发布时间】:2017-11-21 21:56:43
【问题描述】:
我正在编写一个宏来将 MS Excel 工作表中的一列数据添加到已经存在的 MS Project 文档中。当我运行宏时,打开了正确的项目,但我收到一条错误消息,指出我打开的项目已被删除,即使它没有被删除。
这是我当前的宏:
Sub newProjectColumn()
Dim appProj As MSProject.Application
Dim aProg As MSProject.Project
Dim wb As Workbook
Dim ws As Worksheet
Dim rng As Range
Set wb = ActiveWorkbook
'~~> Open MS Project
Set ws = wb.Sheets("Sheet1")
Set appProj = CreateObject("Msproject.Application")
appProj.FileOpen "Project_1.mpp"
Set aProg = appProj.ActiveProject
appProj.Visible = True
'~~> Next, create new Column in project
TableEditEx Name:="Project_1.mpp", TaskTable:=True, _
NewFieldName:="Actual Duration", Title:="Actual Duration", Width:=12, _
ShowInMenu:=True, _
ColumnPosition:=29
'~~> Next, copy T:T from Excel.Then, paste to 29th column (i,29) in Project.
Set Rng = ws.Range("T:T")
ActiveSheet.Paste Destination:=Rng
SelectTaskColumn Column:="Actual Duration"
End Sub
如果我做错了什么或有更好的方法,任何帮助将不胜感激!
【问题讨论】:
-
错误出现在哪一行? excact 错误信息是什么?您是否尝试为
appProj.FileOpen提供完整路径,例如"C:\What\Ever\Your\Path\Is\Project_1.mpp"?并确保在您的项目中应该发生的所有事情都使用aProg.前缀(例如aProg.TableEditEx …或 Excel 假定在 Excel 的 ActiveSheet 中而不是在项目中(还要检查复制/粘贴等)。 -
请始终edit您的问题,以便可以格式化代码。 cmets 中的代码大多不可读。
-
抱歉,代码有格式问题,但是...确切的错误消息是:“运行时错误'1004':视图或报告无法显示,因为表'Project_1.mpp'它所依据的已被删除。”我在它之前添加了 aProg 并收到一条新的错误消息:“运行时错误'438':对象不支持此属性或方法。
-
两个错误都出现在表格编辑行
-
我不好,但
TableEditEx应该是appProj.TableEditEx,因为 Application.TableEditEx Method (Project)。
标签: excel vba ms-project