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