进度管理是项目管理过程中的一个常见应用。这是掌握整个项目进度和发展的好方法。对于任何事物的发展,都要有一个全面的认识,尤其是很重要的东西。
任何项目都是先有计划,再做方案,然后进入建设实施阶段。作为一个高级管理人员,你不需要知道所有的细节,但是知道项目进行到哪个阶段是有必要的。
如果进度控制不好,后续的一些工作可能会受阻,影响整个过程的顺利进行,最终导致失败或经济损失。相信这些结果,没有人愿意看到。
本节介绍如何用Excel VBA制作日程表。
其实关键内容并不是如何用代码实现的细节。重点是要详细了解整个表是怎么形成的,然后根据自己的需求完成计划表。这是一个很好的学习过程。
上图是整个工作表的结果。表格的前半部分显示进度项目,后半部分以图形方式显示进度结果。
这个计划是以月为单位的。如果实施跨月进度管理,表结构会发生变化。因此,进度管理不是一种固定的模式。如果是以年或者十年为单位,那就另当别论了。
为了添加如下图的进度对话框,为了输入方便,直接做了表单输入功能,避免工作表出错。
表单很简单,但其背后的代码却不简单。文章后面会附上一些代码,供参考。
整个工作表实现过程从这里开始。只要输入相应的项目内容,就会自动添加到工作表中,进行时间计算和图形化表示,无需人工干预。
你要做的就是分析图表。
添加按钮代码
Private Sub Com***ndButton1_Click()Dim xobj As Object, i As IntegerReDim uArr(0 To UBound(xArr))For Each xobj In Me.Controls If TypeName(xobj) = "TextBox" Then If VBA.Len(VBA.Trim(xobj.Value)) = 0 Then Exit Sub For i = 0 To UBound(xArr) If xobj.Name = xArr(i) Then If i = 4 Or i = 5 Or i = 6 Or i = 7 Then If Not VBA.IsDate(xobj.Value) Then Exit Sub End If uArr(i) = xobj.Value Exit For End If Next i End IfNext xobjSet xobj = NothinguArr(0) = "=ROW()/2-1"AddSheetRange uArr '添加内容AddNewSheet uArr '添加记录表End Sub
阵列代码
Private Sub getXarr() xArr = Array("序号", "部门", "类别", "项目名称", _ "计划开始时间", "计划结束时间", "实际开始时间", "实际结束时间", "时长")End Sub
添加项目流程代码(AddSheetRange())
Private Sub AddSheetRange(uArr)Dim s As Worksheet, cell As Range, ic As Integer, ix As IntegerDim st1 As Integer, st2 As Integer, xt1 As Integer, xt2 As IntegerSet s = ActiveSheetSet cell = s.Range("B4:AN5")cell.Insert shift:=xlDownWith cell .ClearFor***ts With .Font .Size = 10 .Name = "仿宋" End With For ic = 1 To 4 cell.Cells(1, ic).Value = uArr(ic - 1) s.Range(cell.Cells(1, ic), cell.Cells(2, ic)).Merge Next ic .Interior.Color = RGB(239, 239, 239) .Borders.LineStyle = 3 .Borders.Color = RGB(112, 121, 211) cell.Cells(1, 5).Value = "计划" cell.Cells(2, 5).Value = "实际" cell.Cells(1, 6).Value = uArr(4) '计划开始时间 cell.Cells(1, 7).Value = uArr(5) '计划结束时间 cell.Cells(2, 6).Value = uArr(6) '实际开始时间 cell.Cells(2, 7).Value = uArr(7) '实际结束时间 cell.Cells(1, 8).Value = "=H4-G4" 'VBA.DateDiff("d", uArr(4), uArr(5)) '计划时长 cell.Cells(2, 8).Value = "=H5-G5" 'VBA.DateDiff("d", uArr(6), uArr(7)) '实际时长 st1 = VBA.Day(uArr(4)) + 8 st2 = VBA.Day(uArr(5)) + 8 xt1 = VBA.Day(uArr(6)) + 8 xt2 = VBA.Day(uArr(7)) + 8 s.Range(cell.Cells(1, st1), cell.Cells(1, st2)).Style = "S1" s.Range(cell.Cells(2, xt1), cell.Cells(2, xt2)).Style = "S2" ix = Application.WorksheetFunction.CountA(s.Range("B:B")) - 2End WithEnd Sub
甘特图的绘制是对表格样式的赋值。在本例中,样式名为”S1 ″还有”S2 ″。
首先代码设置样式,还有一些判断样式是否存在,添加等操作。
本文来自女人u加油投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/500249.html