财务分析中动态图表模型的设计与应用(2)
2017-11-24 01:23
导读:Sub 确定绘图选项0 绘图选项窗口.Show End Sub 4、在Visual Basic编辑器中,插进一用户窗体并命名为“绘图选项窗口”。 5、在“绘图选项窗口”中,从“视图
Sub 确定绘图选项0
绘图选项窗口.Show
End Sub
4、在Visual Basic编辑器中,插进一用户窗体并命名为“绘图选项窗口”。
5、在“绘图选项窗口”中,从“视图”→“工具箱”填加所需控件,这些控件包括分组框、列表框、选项按钮、命令按钮等,并以汉字将它们分别标识(Caption)和命名(Name),以便识别和增强程序的可读性。如图2所承。
6、设置列表框“行选择”的Rowsource属性为A3:A7,参照图1。
7、设置列表框“列选择”的Rowsource 属性为A9:A13(其中存放的是利用数组公式{TRAMS-POSE(B2:F2)}返回的转秩矩阵,即“一季度”,……,“地区合计”)。
8、按 ALT+F11键,在Visual Basic编辑器中,双击“窗体”的“绘图选项窗口”,为相应的控件建立以下8段程序代码。
Private Sub userform_Initialize()’用户窗口初始化
行选择.Enabled=False
列选择.Enabled=True
End Sub
Private Sub取消Click()’“取消”按钮的Click事件代码
绘图选项窗口.Hide’隐躲绘图选项窗口
End Sub
Private Sub确定_Click()’“确定”按钮的Click事件代码
Activesheet.ChartObjects(“图表56”).Activate’图表56”是系统自动为插进的图表所作的命名,该图表即为动态图表区域。
ActiveChart.ChartArea.Seect Dim选择季度(4),选择地区(4)’定义两个存放区域名称的数组
If选择数据列.Value=True n条件语句用于判定用户点击的是“选择数据行”还是“选择数据列”,以便产生不同的绘图区域。
选择季度(0)=“一季度”:选择季度(1)=“二季度”
选择季度(2)=“三季度”:选择季度(3)=”四季度”
选择季度(4)=”地区合计”
绘图区域=“销售地区”
For I=0 To 4 ’循环语句用于动态产生“绘图区域”
(科教作文网http://zw.NSEaC.com编辑发布)
If列选择.Selected(I)=True Then ’所应包含的区域名称字符串。
绘图区域=绘图区域+“,”+选择季度(I)’
Debug.Print绘图区域
End If
Next I
绘图选项窗口.Hide
ActiveChart.SetSourceData Source:=Sheets(“动态图表”).Range(绘图区域),_
PlotBy:=xlColumns’图表数据产生于列。
ElseIf选择数据行.Value=True Then
选择地区(0)=“东北”:选择地区(1)=“西北”
选择地区(2)=“华东”:选择地区(3)=“西南”
选择地区(4)=“季度合计”
绘图区域=“销售季度”
For I=0 To 4’循环语句用于动态产生“绘图区域”
If行选择.Selected(I)=True Then’所应包含的区域名称字符串。
绘图区域=绘图区域+“,”+选择地区(I)
‘Debug.Print绘图区域
End If
Next I
绘图选项窗口.Hide
Active Chart.SetSourceData Source:=Sheets(“动态图表”).Range(绘图区域),-
PlotBy:=xlRows’图表数据产生于行
End If
ActiveChart.Locaation Where:=xlLocationAsObject,Name:=“动态图表”
With ActiveChart
If圆饼图.Value=True Then
.HasTitle=True
Else
.HasTitle=False
End If
.Axes(xlCategory,xlPrimary).HasTitle=False
.Axes(xlValue,xlPrimary).HasTitle=False
End With
Range(绘图区域).Select
End Sub
Private Sub折线图_Click 0
行选择.MultiSelect=fmMultiSelectMulti
列选择.MultiSelect=fmMultiSelectMulti
ActiveSheet.ChartObjects(“图表56”).Activate
ActiveChart.ChartArea.Select