• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      李邐 楊彬

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

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

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

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

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

      1 Excel VBA與圖表

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

      在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 拆線(xiàn)圖

      2 界面和功能分析

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

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

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

      用戶(hù)選擇產(chǎn)品為“彩電”,選擇圖形為“拆線(xià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ū)的銷(xiāo)售額隨時(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("銷(xiāo)售情況表").Range("A1"), PlotBy:=xlColumns

      Call 圖表類(lèi)型

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

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

      ActiveChart.SeriesCollection(1).Name = AreaSEL

      ActiveChart.Location where:=xlLocationAsObject, Name:="銷(xiāo)售情況表"

      ElseIf ProductSel = "" Then

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

      Range(DataArea).Select

      Charts.Add

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

      Call 圖表類(lèi)型

      ActiveChart.Location where:=xlLocationAsObject, Name:="銷(xiāo)售情況表"

      With ActiveChart

      .HasTitle = True

      .ChartTitle.Characters.Text = "銷(xiāo)售業(yè)績(jī)統(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 = "銷(xiāo)售額(萬(wàn)元)"

      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("目前無(wú)圖表可清除!", 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ù)圖表,讓用戶(hù)了解VBA在Excel中的應(yīng)用方法。為從事數(shù)據(jù)處理的用戶(hù)提供一種思路,并簡(jiǎn)化工作中的操作過(guò)程,提高用戶(hù)的工作效率。

      參考文獻(xiàn):

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

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

      彰化市| 台北市| 无极县| 上高县| 永泰县| 霍城县| 江津市| 吉首市| 苏尼特右旗| 灌南县| 墨竹工卡县| 鄂州市| 澎湖县| 平乡县| 宁海县| 台南县| 宝兴县| 磴口县| 新田县| 台湾省| 博罗县| 大埔区| 东宁县| 河源市| 集贤县| 高安市| 来宾市| 二手房| 双鸭山市| 襄樊市| 贵港市| 泸州市| 弥勒县| 平利县| 苗栗县| 福建省| 崇义县| 宜黄县| 新龙县| 西林县| 锦屏县|