Project VBA Macro Organizer女士负责子项目复制问题

问题描述

我有一条简单的代码行,尝试通过项目组织者将文本字段从主项目/Global.mpt复制到主项目(活动项目)中的子项目。我已经尝试了多种方法,但是我都失败了 找不到“运行时错误1101,文件Schedule 1”,或者“在这种情况下此值无效,请检查字段以查看它是否需要文本,日期或数字,并且您正确键入了信息”。 感谢你的帮助。谢谢

'OrganizerMoveItem Type:=pjFields,FileName:="MASTER SCHEDULE.mpp",ToFileName:=" Schedule1.mpp",Name:="Text27"
'OrganizerMoveItem Type:=pjFields,FileName:="C:\xx\MASTER SCHEDULE.mpp",_
'ToFileName:=ActiveProject,Name:="T27(Text27)"
OrganizerMoveItem Type:=9,FileName:="GLOBAL.MPT",_
ToFileName:=ActiveProject.Subprojects("Schedule1.mpp"),Name:="T27"

解决方法

问题是子项目文件需要打开才能使用管理器将自定义项移入该文件。在主计划中查看子项目的任务与打开子项目文件不同。

此代码将遍历子项目,并通过使用管理器打开定制的Text27字段,然后将其关闭并保存,将其复制到每个文本字段。

Sub CopyCustomFieldToSubprojects()

Dim master As Project
Set master = ActiveProject

Dim prj As Subproject
For Each prj In master.Subprojects

    FileOpenEx prj.Path
    Projects(prj.SourceProject.Name).Activate
    
    Application.Alerts False
    OrganizerMoveItem Type:=pjFields,FileName:=master.Name _,ToFileName:=ActiveProject.Name,Name:="T27 (Text27)"
    Application.Alerts False
    
    FileCloseEx pjSave
    
Next prj

End Sub

请注意,OrganizerMoveItem方法需要FileName和ToFileName参数的文件名(字符串),而不是Project对象(例如Filename:=master.Name)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...