除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www.zhanzhanrufeng.com/cat4/507.html,VBA交流群273624828。
再来看个类模块的实例。用VBA插入图表往往要设计一大堆的参数,为了方面,这次我们设计一个类模块,每次要插入图表时调用该类模块,输入几个参数就可以了。
在这里一共设置了3个参数,“目标工作表”是放图表的地方,“数据区域”就是图表调用的数据区域,“图表类型”就是柱 形图、饼图之类的东西。
先插入一个类模块,命名为NewChart,然后编写“目标工作表”,“数据区域”,“图表类型”3个可写属性
Private ShtName, rng, cType
Property Let 目标工作表(mysheetname As String)
ShtName = mysheetname
End Property
Property Let 数据区域(myRng As Range)
Set rng = myRng
End Property
Property Let 图表类型(myType As Integer)
Select Case myType
Case 0
cType = 1
Case 1
cType = -4102
Case 2
cType = -51
End Select
End Property
可写属性用的是Property Let 属性名(参数)这种方式,传递进来的参数我们都要用声明的公共变量记录下来,以方便之后的使用。这里图表类型设了3个选项0,1,2,分别对应3个图表类型,这里不多介绍。
属性设置完了下面来设置创建图表方法。
Public Sub 创建图表()
Dim cht
On Error Resume Next
For Each cht In Worksheets(ShtName).ChartObjects
cht.Delete
Next
Set cht = Worksheets(ShtName).ChartObjects.Add(100, 30, 450, 250)
With cht
.Chart.ChartType = cType
.Chart.SetSourceData rng
.Chart.HasTitle = True
.Chart.HasLegend = True
End With
End Sub
该方法中目标工作表、数据区域、图表类型都是调用之前设好的3个属性。
类模块设计好了下面看怎么使用类模块。插入一个模块,输入下列代码
Sub test()
Dim myChart As New NewChart
myChart.目标工作表 = "Sheet1"
myChart.数据区域 = Sheet1.Range("B1:D5")
myChart.图表类型 = 2
myChart.创建图表
End Sub
定义一个新的类模块NewChart,然后指定目标工作表、数据区域、图表类型3个属性,再调用创建图表方法,一个图表就创建成功了。
本节示例文件下载地址:http://pan.baidu.com/s/18NBSM。
联系客服