Project中用VBA实现分级显示

前言

上次讲了在PROJECT中快速建立分级显示,那么如果我已经在EXCEL中建立了任务清单和WBS级别,能否一下复制到PROJECT中呢,快速建立任务层级关系呢?

我们可以试一下:

试错

清单和WBS层级已经在EXCEL中做好,如下图:

打开PROJECT,在任务名称左边插入“大纲级别”,如下图所示:

在EXCEL中选择A2:B17区域,复制

在PROJECT中选择,第一行,大纲级别,粘贴

如下图所示:

我们发现,大纲级别都是1,也就是说大纲级别不能复制过去,我们层级显示的尝试以失败告终!不信你就单独复制这个层级数字看看,结果还是一样的!

迂回包抄

既然这个数字可以手动修改,又不接受复制,我的办法是交给Project自己解决。

随便插入一个数字列,如数字1

将层级代码复制到数字1列,如下图所示:

我们发现数字1是可以复制的,试想,如果我们让大纲级别等于数字1不就行了吗?

现在验证一下:

Alt+F11 打开VBA界面,注意是在PROJECT中打开VBA,双击thisproject,在代码窗口输入下列代码。

Sub wbslevel()

Dim t  As  Task

For Each  t  InTasks

t.outlinelevel = t.Number1

Next

End Sub

很简单只有几句话,核心代码只有一句:t.outlinelevel = t.Number1

翻译一下:

程序名称,以SUB 名称()开始和END SUB结束

Sub wbslevel()

……

End sub

DIM T AS TASK

定义变量T为TASK类型,此句可以省略

For each t in tasks

……

Next.

循环语句,任务T在TASKS中循环

t.outlinelevel = t.Number1

任务的大纲级别等于数字1

将鼠标放在代码中间任意位置,按F5 运行,结果如下:

数字1已经没有价值了,数字可以删除,列也可以掩藏了。

思考

VBA其实并不难,也不仅限于EXCEL,其实在WORD,OUTLOOK,CAD中都可以使用VBA,如果你感兴趣,不妨多了解一些!对你的工作绝对是有帮助的!

END

欢迎入群讨论!(QQ群)
(0)

相关推荐