我有一行简单的代码,试图通过项目组织者将文本字段从主项目/Global.mpt复制到主项目(活动项目(中的子项目。我尝试了多种方法,但都失败了‘运行时错误1101;未找到或者;在这种情况下,该值无效,请检查该字段是否需要文本、日期或数字,以及您键入的信息是否正确"。感谢你的帮助。感谢
'OrganizerMoveItem Type:=pjFields, FileName:="MASTER SCHEDULE.mpp", ToFileName:=" Schedule1.mpp",
Name:="Text27"
'OrganizerMoveItem Type:=pjFields, FileName:="C:xxMASTER SCHEDULE.mpp", _
'ToFileName:=ActiveProject, Name:="T27(Text27)"
OrganizerMoveItem Type:=9, FileName:="GLOBAL.MPT", _
ToFileName:=ActiveProject.Subprojects("Schedule1.mpp"), Name:="T27"
问题是需要打开子项目文件才能使用"管理器"将自定义项移动到其中。在主计划中查看子项目的任务与打开的子项目文件不同。
此代码将循环通过子项目,并通过打开、使用Organizer、然后关闭并保存来将自定义的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
(。