国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Excel VBA的自動(dòng)繪制圖表功能研究

2015-09-09 19:00李邐楊彬
電腦知識(shí)與技術(shù) 2015年16期

李邐 楊彬

摘要: Excel是微軟公司office軟件包中主要針對(duì)電子表格進(jìn)行處理的一個(gè)軟件,其圖表功能非常豐富。但在基本操作中,都需要用戶手動(dòng)選擇數(shù)據(jù)、圖表類型和圖表元素。該文通過VBA在Excel中的應(yīng)用,設(shè)計(jì)工作表中自動(dòng)生成各類圖表的方法,以簡化用戶的操作。

關(guān)鍵詞:Excel;VBA;自動(dòng)繪制圖表

中圖分類號(hào):TP317 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)03-0097-02

隨著Windows操作系統(tǒng)中應(yīng)用程序的不斷增多和功能不斷增強(qiáng),越來越多的程序增加了宏處理功能來方便用戶的使用。宏可以完成很多自動(dòng)化的功能,但過多錄制宏,會(huì)使代碼顯得繚亂,難以抓住重點(diǎn)。為了擴(kuò)展宏指令的應(yīng)用,Office應(yīng)用程序中內(nèi)置了VBA語言的編輯環(huán)境。以Excel軟件為例,用戶可以通過VBA,更快捷的操作工作簿、工作表、單元格、圖表等對(duì)象,更好的控制Excel進(jìn)程,進(jìn)一步發(fā)掘Excel的強(qiáng)大功能,全面提高使用Excel工作的自動(dòng)化能力。

Excel作為全面的表格處理工具,為用戶提供了強(qiáng)大的圖表功能,通過圖表功能,可以將工作中的數(shù)據(jù)展示出來。圖表是數(shù)據(jù)的圖形化表現(xiàn)形式,它把行、列中的數(shù)據(jù)轉(zhuǎn)變?yōu)橛幸饬x的圖形。利用圖表功能可以幫助企業(yè)預(yù)測(cè)數(shù)據(jù)的走向,以便對(duì)銷售的Product進(jìn)行分析,做出正確的決策。在Excel中,可以通過圖表向?qū)砝L制各種各樣的圖表,這種方式需要用戶自定義DataArea,選擇圖表類型等操作;而通過Excel VBA編寫代碼可以實(shí)現(xiàn)圖表的自動(dòng)化繪制和展現(xiàn)。本文以某公司產(chǎn)品銷售數(shù)據(jù)為樣本來說明在Excel中如何通過VBA來自動(dòng)、高效繪制圖表。

1 Excel VBA與圖表

圖表在Excel中有兩種形式,一種是嵌入式圖表,即圖表作為對(duì)象存在于工作表中;另一種是單獨(dú)的圖表工作表,即圖表和數(shù)據(jù)位于不同工作表中。圖表中包含的元素有:圖表區(qū)、刻度線、圖例、數(shù)據(jù)系列和坐標(biāo)軸等。Excel VBA支持所有圖表的操作和設(shè)置,并可以通過ADD方法向工作表中添加圖表,并標(biāo)出圖表類型。

在Excel中,Chart對(duì)象代表工作簿中的圖表,該圖表既可作為嵌入圖表(ChartObject對(duì)象),也可作為一個(gè)單獨(dú)的圖表工作表(Chart)。ChartObject對(duì)象代表工作表中的嵌入圖表,ChartObject作為Chart對(duì)象的容器,用它的屬性和方法可以設(shè)置工作表上圖表的外觀和尺寸。Chart屬性、ActiveChart屬性、Charts集合和ActiveSheet屬性都可以返回Chart對(duì)象。本文設(shè)計(jì)中主要使用到以上對(duì)象及相關(guān)屬性。

圖1 數(shù)據(jù)清單

圖2 “創(chuàng)建圖表”窗體

圖3 柱形圖

圖4 拆線圖

2 界面和功能分析

本文對(duì)某器材公司2015年第一季度全國電器產(chǎn)品銷售情況做出統(tǒng)計(jì),得到Excel工作表“銷售情況表”(如圖1),該表針對(duì)不同產(chǎn)品和不同地區(qū)分類,得出產(chǎn)品總體銷售情況和地區(qū)銷售情況。在該工作表中添加“繪制圖表”按鈕工具,單擊該按鈕,得到“創(chuàng)建圖表”窗體(如圖2),以工作表數(shù)據(jù)作為基礎(chǔ)數(shù)據(jù),完成自動(dòng)生成各類圖表(如,柱形圖、拆線圖、餅圖、堆積圖等) 功能。

“創(chuàng)建圖表”窗體中,選擇區(qū)域和選擇產(chǎn)品的數(shù)據(jù)基礎(chǔ)為“銷售情況表”工作表中地區(qū)元素和產(chǎn)品元素; 選擇圖形中定義四類可被用戶使用的圖表類型;四個(gè)按鈕分別是:“繪圖“按鈕”、“清除選擇”按鈕、“清除圖表”按鈕和“返回”按鈕。其中,單擊“繪圖“按鈕”可以根據(jù)用戶選擇生成各類圖表;單擊“清除選擇”按鈕可以清除用戶在地區(qū)和產(chǎn)品上的選擇;單擊“清除圖表”按鈕可以刪除已經(jīng)在工作表中嵌入生成的圖表;單擊“返回”按鈕,將關(guān)閉“創(chuàng)建圖表”窗體,返回到工作表中。

如,用戶選擇區(qū)域?yàn)椤氨本?,選擇圖形為“柱形圖”,將自動(dòng)生成如圖3所示的圖表。

用戶選擇產(chǎn)品為“彩電”,選擇圖形為“拆線圖”,將自動(dòng)生成如圖4所示的圖表。

3 代碼實(shí)現(xiàn)

Private Sub CMD1_Click()

“繪圖”按鈕功能

Dim DataArea, AreaSEL As String

On Error Resume Next

If LBox1.Value <> "AllArea" Then

For i = 1 To n + 1

If LBox1.Value = IArea(i) Then

AreaSEL = IArea(i)

End If

Next i

Else: AreaSEL = "AllArea"

End If

For i = 1 To m + 1

If LBox2.Value = Product(i) Then

ProductSel = Product(i)

End If

Next i

'繪制不同地區(qū)的銷售額隨時(shí)間的變化

If LBox1.Value <> "AllArea" Then

X = "R" & 5 & "C" & 2 & ":" & "R" & 5 & "C" & m + 1

For i = 1 To n + 1

If IArea(i) = AreaSEL Then

Y = "R" & 5 + i & "C" & 2 & ":" & "R" & 5 + i & "C" & m + 1

End If

Next i

Charts.Add

ActiveChart.SetSourceData Source:=Sheets("銷售情況表").Range("A1"), PlotBy:=xlColumns

Call 圖表類型

ActiveChart.SeriesCollection(1).XValues = "=銷售情況表!" & X

ActiveChart.SeriesCollection(1).Values = "=銷售情況表!" & Y

ActiveChart.SeriesCollection(1).Name = AreaSEL

ActiveChart.Location where:=xlLocationAsObject, Name:="銷售情況表"

ElseIf ProductSel = "" Then

DataArea = "A5:" & Chr(65 + m) & (n + 5)

Range(DataArea).Select

Charts.Add

ActiveChart.SetSourceData Source:=Sheets("銷售情況表").Range(DataArea), PlotBy:=xlRows

Call 圖表類型

ActiveChart.Location where:=xlLocationAsObject, Name:="銷售情況表"

With ActiveChart

.HasTitle = True

.ChartTitle.Characters.Text = "銷售業(yè)績統(tǒng)計(jì)分析"

If Opt3.Value = False Then

.Axes(xlCategory, xlPrimary).HasTitle = True

.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Product"

.Axes(xlCategory, xlPrimary).HasTitle = True

.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "銷售額(萬元)"

Else

ActiveChart.HasTitle = True

ActiveChart.ChartTitle.Characters.Text = AreaSEL

End If

End With

End If

ActiveChart.ChartArea.Font.Size = 9

End Sub

Private Sub CMD2_Click()

“清除選擇”按鈕功能

LBox1.Value = ""

LBox2.Value = ""

Opt1.Value = False

Opt2.Value = False

Opt3.Value = False

Opt4.Value = False

End Sub

Private Sub CMD3_Click()

“清除圖表”按鈕功能

Dim mysheet As Worksheet

Dim i As Integer

Title$ = "是否刪除圖表"

Set mysheet = ThisWorkbook.Worksheets(1)

mysheet.ChartObjects.Select

i = mysheet.ChartObjects.Count

If i <> 0 Then

mysheet.ChartObjects.Delete

Else

answer = MsgBox("目前無圖表可清除!", 64, Title$)

End If

End Sub

Private Sub CMD4_Click()

“返回”按鈕功能

End

End Sub

由于篇幅有限,本文僅給出部分代碼。

4 結(jié)論

本文以一個(gè)應(yīng)用實(shí)例,介紹了Excel作為全面的表格處理工具,提供的強(qiáng)大的圖表功能,并使用VBA代碼創(chuàng)建數(shù)據(jù)圖表,讓用戶了解VBA在Excel中的應(yīng)用方法。為從事數(shù)據(jù)處理的用戶提供一種思路,并簡化工作中的操作過程,提高用戶的工作效率。

參考文獻(xiàn):

[1] 李輝,郝艷芬,支穎.office高手-Excel2003辦公應(yīng)用[M].北京: 人民郵電出版社,2006.

[2] 常廣炎,楊彬.基于Excel VBA 的數(shù)據(jù)處理軟件開發(fā)[J].電腦知識(shí)與技術(shù),2014(8).