Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用VBA筛选时间线中的MS Project任务_Vba_Timeline_Ms Project - Fatal编程技术网

如何使用VBA筛选时间线中的MS Project任务

如何使用VBA筛选时间线中的MS Project任务,vba,timeline,ms-project,Vba,Timeline,Ms Project,我正在尝试筛选Project 2013文件中的任务,方法是只选择标有“在时间线上显示”复选框的任务。 我使用VBA进行过滤,但我的loopreturn中的每个任务都返回taskontTimeLine=True 甚至只有12个任务(190个任务中)被标记为这样 这是我正在使用的代码: Set appProj = CreateObject("Msproject.Application") appProj.FileOpen GanttPath Set GNT = appProj.ActiveProje

我正在尝试筛选Project 2013文件中的任务,方法是只选择标有“在时间线上显示”复选框的任务。 我使用VBA进行过滤,但我的loopreturn中的每个任务都返回taskontTimeLine=True 甚至只有12个任务(190个任务中)被标记为这样

这是我正在使用的代码:

Set appProj = CreateObject("Msproject.Application")
appProj.FileOpen GanttPath
Set GNT = appProj.ActiveProject
appProj.Visible = True
For Each iTask In GNT.Tasks 
  If TaskOntimeline Then
    G1 = iTask.name
    G2 = iTask.ID
    G3 = iTask.UniqueID
    G4 = iTask.Start
    G5 = iTask.Finish
  End if
Next
appProj.FileCloseEx
appProj.Quit
我将把这些值放入数组中,以便进一步处理和显示

为什么所有任务都返回相同的值? 我应该做得更好,以便它能够准确过滤


关于,

您放置过滤器的代码在哪里?过滤器将进入每个任务的For循环,其中TaskOnTimeline为True。目前,任何任务都会返回真值。如果使用
If TaskOnTimeline,则它会将任务添加到时间线中。在网上到处找,想不出一个办法来“欺骗”这个,但…好吧,那个么我怎么才能得到任务的“在时间线上显示”价值呢?有没有办法获得这些信息?仍然在寻找创造性的方法,到目前为止只能添加任务或从时间表中删除任务,而不能获得价值