说说如何在 Excel 中构建类似 Microsoft Project 中的任务层级结构
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 中的任务层级结构相关推荐
- 说说在 Microsoft Project 中如何把任务列表导出为 excel
把 Project 的任务清单导出为 excel 是常用功能. (1)另存为 excel 点击文件 → 保存并发送 → 将项目另存为文件 → Microsoft Excel 工作簿 (2)命名 exc ...
- 如何在Excel中将多个单元格中的文本合并到一个单元格中
If you have a large worksheet in an Excel workbook in which you need to combine text from multiple c ...
- 在Blazor中构建数据库应用程序——第1部分——项目结构和框架
目录 介绍 存储库和数据库 设计理念 数据 UI 解决方案结构 界面结构 页面 路由视图 布局 表单 控件 Blazor.Database项目 Program.cs ServiceCollection ...
- Android中实现类似探探中图片左右滑动切换效果
偶然之间发现探探的左右滑动的图片挺好玩,试着去做了下,再到后来,看到许多大神也推出了同样仿探探效果的博客,从头到尾阅读下来,写得通俗易懂,基本上没什么问题.于是,实现仿探探效果的想法再次出现在脑海中. ...
- xlsx表格怎么筛选重复数据_excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法...
excel表格如何筛选重复数据 在Excel表格的两列数据中提取不重复值的四种方法,最近到了季度汇报的时候,掌握一手excel技能在此刻显得多么重要,为了是你的excel看起来更高大上,今天教大家设置 ...
- 新点软件怎么导入清单_excle表怎么导入新点,怎样把EXCEL表格导入project 中?
excel怎么将表格导入另一个表格 直接复制-粘贴其实更加. 导入有格式等的要求,软件版本也是有的. 如果你想不改变格式将一个表格的数据全部复制过来,有两种方法: 一.不打开要复制的表格,直接将这个表 ...
- 在Unity中构建Pong克隆:UI和游戏玩法
In Part 1 of this tutorial – the Retro Revolution: Building a Pong Clone in Unity – we created a Pon ...
- 类似 MS Project 的项目管理工具有哪些
类似 MS Project 的项目管理工具有哪些?国内外类似 Microsoft Project 的项目管理软件有:1.Worktile:2.PingCode:3.Asana:4.Zoho Proje ...
- Oracle P6 Professional相比与Microsoft Project的8个优势
目录 引言 1. 自上而下的调度 2. 努力程度 (LOE) 活动 3. 最长路径 4. 多浮动路径分析功能 6.预算材料成本 7. 开始和完成里程碑 8. 工作公式类型 概括 引言 哪种日程安排工具 ...
最新文章
- 最强的浏览器插件——油猴脚本
- 【OJ】OJ的介绍和常用OJ推荐
- Delphi应用程序的调试(四)The Debug Inspector
- MySQL 4到5的快速升级
- 【赠书福利】不扶好眼镜,请别打开这本挑战JS语言特性的书
- jsp出现The import Xxx type is not resolved...
- Java-Arrays类
- [Python] Ubuntu 安装/卸载 python
- javascript执行机制
- 【通信仿真】基于matlab多域网络仿真【含Matlab源码 1794期】
- 幼儿园绘本图书借阅小程序
- android最新版安装教程,在PC上安装Android系统的图文教程
- 华为手机禁用省电精灵
- Laravel 生成Controller
- 微信小程序:凑单满减计算神器
- 实时获取Android手机CPU占用率
- 计算机专业需要物理力学,读经典物理学和量子力学所想到的计算机哲学
- 史上最全电子元器件实物外形图+电路符号
- Linux中Uboot详解
- 全国计算机软件测试工程师,全国计算机等级考试软件测试工程师.doc