Microsoft Project的任务列表一般情况下都会具有层级结构,即大任务分解为小任务,点击“收缩”按钮,就可以把觉得太长的子任务列表收缩起来。形如:

如果直接导出,那么这些大小任务都在一列展示,不仅看不出关系,而且还没有伸缩功能。这时就要用到 VBA 在 Excel 中实现类似的功能。

VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言2

首先我们需要任务之间的层级关系数据。Microsoft Project 中的“大纲级别”字段描述的就是任务之间的层级关系:

我们可以先将“大纲级别”字段与其他数据字段一并导出到 Excel 中:

接着按ALT+F11 进入VBA编辑器,选择插入模块:

输入如下代码:


Sub 分级显示()Dim ii = 2On Error Resume NextDo While Cells(i, 1).Value <> ""Rows(i).OutlineLevel = Cells(i, 1).ValueCells(i, 2).IndentLevel = Cells(i, 1) - 1i = i + 1LoopEnd Sub

我们来分析一下这段代码:

  • 首先使用Dim来声明变量和分配存储空间3

  • On Error Resume Next 表示程序出现错误时,直接跳到下一条语句;

  • 接着从 Excel的第二行开始,通过 Cells(i,1) 方法取出大纲级别数据。Cells(x,y) 表示取出第 x 行、第 y 列所对应单元格内的内容;

  • 然后使用Rows(i).OutlineLevel 来指定本行的大纲层级4

  • 接着使用 Cells(i, 2).IndentLevel 来指定第二列单元格的缩进量5,如果是第一级则不进行缩进;

indent ɪnˈdent;

To start a line of print or writing further away from the edge of the page than the other lines.

接着点击左上角的绿色箭头按钮,然后在弹出的“宏”对方框中点击“运行”按钮:

然后关闭 VBA 编辑器。接着再点击“数据”标签内的“分级显示”设置图标:

取消勾选“明细数据的下方”:

这样就把“分级显示”框放到了明细数据的上方咯:

左上角还有一排的层级号,点击相应的层级号,可以按照该层级进行收缩操作:


参考资料:
【1】 VBA (Visual Basic宏语言)
【2】Dim 语句.
【3】Range.OutlineLevel 屬性 (Excel).
【4】IndentLevel 属性 (Excel).
【5】从PROJECT导出到EXCEL中的任务如何快速分级.

说说如何在 Excel 中构建类似 Microsoft Project 中的任务层级结构相关推荐

  1. 说说在 Microsoft Project 中如何把任务列表导出为 excel

    把 Project 的任务清单导出为 excel 是常用功能. (1)另存为 excel 点击文件 → 保存并发送 → 将项目另存为文件 → Microsoft Excel 工作簿 (2)命名 exc ...

  2. 如何在Excel中将多个单元格中的文本合并到一个单元格中

    If you have a large worksheet in an Excel workbook in which you need to combine text from multiple c ...

  3. 在Blazor中构建数据库应用程序——第1部分——项目结构和框架

    目录 介绍 存储库和数据库 设计理念 数据 UI 解决方案结构 界面结构 页面 路由视图 布局 表单 控件 Blazor.Database项目 Program.cs ServiceCollection ...

  4. Android中实现类似探探中图片左右滑动切换效果

    偶然之间发现探探的左右滑动的图片挺好玩,试着去做了下,再到后来,看到许多大神也推出了同样仿探探效果的博客,从头到尾阅读下来,写得通俗易懂,基本上没什么问题.于是,实现仿探探效果的想法再次出现在脑海中. ...

  5. xlsx表格怎么筛选重复数据_excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法...

    excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法,最近到了季度汇报的时候,掌握一手excel技能在此刻显得多么重要,为了是你的excel看起来更高大上,今天教大家设置 ...

  6. 新点软件怎么导入清单_excle表怎么导入新点,怎样把EXCEL表格导入project 中?

    excel怎么将表格导入另一个表格 直接复制-粘贴其实更加. 导入有格式等的要求,软件版本也是有的. 如果你想不改变格式将一个表格的数据全部复制过来,有两种方法: 一.不打开要复制的表格,直接将这个表 ...

  7. 在Unity中构建Pong克隆:UI和游戏玩法

    In Part 1 of this tutorial – the Retro Revolution: Building a Pong Clone in Unity – we created a Pon ...

  8. 类似 MS Project 的项目管理工具有哪些

    类似 MS Project 的项目管理工具有哪些?国内外类似 Microsoft Project 的项目管理软件有:1.Worktile:2.PingCode:3.Asana:4.Zoho Proje ...

  9. Oracle P6 Professional相比与Microsoft Project的8个优势

    目录 引言 1. 自上而下的调度 2. 努力程度 (LOE) 活动 3. 最长路径 4. 多浮动路径分析功能 6.预算材料成本 7. 开始和完成里程碑 8. 工作公式类型 概括 引言 哪种日程安排工具 ...

最新文章

  1. 最强的浏览器插件——油猴脚本
  2. 【OJ】OJ的介绍和常用OJ推荐
  3. Delphi应用程序的调试(四)The Debug Inspector
  4. MySQL 4到5的快速升级
  5. 【赠书福利】不扶好眼镜,请别打开这本挑战JS语言特性的书
  6. jsp出现The import Xxx type is not resolved...
  7. Java-Arrays类
  8. [Python] Ubuntu 安装/卸载 python
  9. javascript执行机制
  10. 【通信仿真】基于matlab多域网络仿真【含Matlab源码 1794期】
  11. 幼儿园绘本图书借阅小程序
  12. android最新版安装教程,在PC上安装Android系统的图文教程
  13. 华为手机禁用省电精灵
  14. Laravel 生成Controller
  15. 微信小程序:凑单满减计算神器
  16. 实时获取Android手机CPU占用率
  17. 计算机专业需要物理力学,读经典物理学和量子力学所想到的计算机哲学
  18. 史上最全电子元器件实物外形图+电路符号
  19. Linux中Uboot详解
  20. 全国计算机软件测试工程师,全国计算机等级考试软件测试工程师.doc

热门文章

  1. 高斯模糊效果实现方案及性能对比
  2. 我失业了?| ChatGPT生信分析初体验
  3. 那些年,我们曾白嫖到的图床
  4. 首选DNS服务器地址不显示,首选dns服务器如何设置?如何设置DNS地址
  5. noj 1860 保研(01背包 概率dp)
  6. IntelliJ IDEA 2018 注册码
  7. 苹果IOS端游戏试玩操作方法和攻略
  8. 区块链会员积分体系解决方案
  9. mavlink解码java_Mavlink通信协议Java版本
  10. 2台博能传动伺服驱动器使用105报文(DSC)实现绝对齿轮同步