我正在研究一个脚本,该脚本可以从excel内部生成MS项目计划。一切工作正常,但我无法设置页眉和页脚。看起来我需要识别视图名称,但是我经常遇到运行时错误1101或其他错误。
我正在使用丹麦语版本的MS-project(Side = Page,Sider = Pages),根据页面设置菜单的标题,我的默认视图是“甘特图”。还尝试了运气好的“甘特图”。
Dim pjapp As Object
Dim newproj As Object
Set pjapp = CreateObject("MSProject.application")
pjapp.Visible = True
Set newproj = pjapp.Projects.Add
Set ActiveProject = newproj
' here I want to remove the legend (does not work)
pjapp.FilePageSetupLegendEx Name:="Gantt-diagram", LegendOn:=pjNoLegend
' here I want to set the footer
pjapp.FilePageSetupFooter Alignment:=pjRight
pjapp.FilePageSetupFooter Text:="&[Side] of &[Sider] just some text here"
' setting page to A3 format - this somehow works
pjapp.FilePageSetupPage PaperSize:=8
' here I want to setup the header (does not work)
pjapp.FilePageSetupHeader Name:="Gantt-diagram", Alignment:=pjRight, Text:="My header"
答案 0 :(得分:0)
可以尝试以下几项:
pjNoLegend
之类的内在常数会导致调试错误),因此将Project对象声明为其原始类型(例如Dim pjapp As MSProject.Application
)。FilePageSetupLegend
代替FilePageSetupLegendEx
。FilePageSetupHeader
,并跳过视图名称参数(它将默认为当前视图)。例如:pjapp.FilePageSetupFooter , pjRight, "&[Side] of &[Sider] just some text here"
ActiveProject
是MS Project中的保留字,因此请在此处使用其他变量名称,或者仅删除该行代码,因为您已经有了对象变量newproj,并且它已经是活动项目。注意:要使用early binding(更简单),请包括对Microsoft Project对象库的引用。为此,请在VB编辑器中转到“工具:参考”,然后检查相应的参考(它可能会列为“ Microsoft Office Project Object Library”,并将包含版本号,使用2013,即v15.0)。另外,请确保没有检查任何不正确的引用(例如,对错误版本的引用)。