用excel treemap工具分析toodledo-VBA篇
前文提到用用excel treemap工具分析toodledo,其中设置步骤可能要花几分钟时间。考虑到是MS office工具,所以可以用VBA来实现设置过程的自动化。
这样整个过程将便捷许多。
下面来说一下步骤:
1.下载CSV文件,修改为ANSI编码
2.新建一个excel文件,默认的工作薄名称是:sheet1,sheet2,sheet3。将CSV文件中的数据复制到sheet1中。
3.将下面的vba代码放入宏编辑器中。在excel 2007中,在“视图”-“宏”中,点击录制宏。在左下角点击停止按钮。然后点击查看宏,点击编辑。把代码粘帖覆盖原有的代码。你可以设置一个快捷键,比如ctrl+1,来快速执行宏。
4.执行宏。整个过程应该只有几秒钟。
5.在sheet3中,选择数据,点击treemap插件,生成treemap图
Sub Macro1() ' '默认任务上限是150个 Sheets("sheet1").Select Range("A1:P150").Select '筛选,默认是当天的任务 Selection.AutoFilter ActiveSheet.Range("$A$1:$P$150").AutoFilter Field:=7, Criteria1:= _ xlFilterToday, Operator:=xlFilterDynamic Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy '将筛选结果复制到sheet2
Sheets("sheet2").Select
Range("A1").Select
ActiveSheet.Paste
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Cut
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Columns("C:D").Select
Selection.Cut
Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Sheets("sheet3").Select
'调整列的左右位置,以配合treemap插件中列的顺序。筛选后的任务上限默认是30个。
Range("C1").Select
ActiveCell.FormulaR1C1 = "=sheet2!RC[-2]"
Range("C1").Select
Selection.AutoFill Destination:=Range("C1:C30"), Type:=xlFillDefault
Range("C1:C30").Select
Selection.AutoFill Destination:=Range("C1:F30"), Type:=xlFillDefault
Range("A1").Select
ActiveCell.FormulaR1C1 = "=sheet2!RC[9]"
Range("A1").Select
Selection.AutoFill Destination:=Range("A1:A30"), Type:=xlFillDefault
Range("A1:A30").Select
Range("B1").Select
ActiveCell.FormulaR1C1 = "=sheet2!RC[10]"
Range("B2").Select
ActiveCell.FormulaR1C1 = "=-sheet2!RC[10]"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B30"), Type:=xlFillDefault
Range("B2:B30").Select
End Sub
注意,要把文件保存成xlsm格式,否则vba代码将不被保存。因为office 2007是open xml格式的。另外,要启用宏,否则下次打开文件也无法运行宏。
Tags: toodledo


Posted under: 
