在如何用vba创建气泡图?一文中我们介绍了用vba创建气泡图的要点,并且给出了用vba创建单系列气泡图的代码。
今天,跟大家一起分享如何用vba快速地创建一个多系列的气泡图,以达到不同的系列用不同的颜色显示气泡的目的。
如下图所示:
可以使用如下的代码生成上图的多系列气泡图:
Sub QQ1722187970() Dim oWK As Worksheet Set oWK = Excel.Worksheets("Sheet1") With oWK iRow = .Range("a65536").End(xlUp).Row End With With oWK.Sort '删除原来的排序字段 .SortFields.Clear '添加新的排序字段 .SortFields.Add Key:=oWK.Range("a1"), SortOn:=xlSortOnValues, Order:=xlDescending '设置排序的单元格区域 .SetRange oWK.Range("a1:e" & iRow) '设置排序的方向 .Orientation = xlSortColumns '设置是否包含列标题 .Header = xlYes '开始排序 .Apply End With '定义字典对象变量 Dim oDic As Object '创建字典对象 Set oDic = CreateObject("Scripting.Dictionary") '先存储相同的系列对应的单元格区域 For i = 2 To iRow With oDic sKey = oWK.Cells(i, 1).Value If .exists(sKey) Then Set .Item(sKey) = Excel.Application.Union(.Item(sKey), oWK.Cells(i, 1)) Else .Add sKey, oWK.Cells(i, 1) End If End With Next i arrKeys = oDic.keys Dim oChart As Chart Dim oSeries As Series Dim oSC As SeriesCollection Dim oFSC As FullSeriesCollection '先创建一个空白的图形壳 Set oChartObject = oWK.ChartObjects.Add(100, 50, 500, 300) Set oChart = oChartObject.Chart '对空白的图形进行设置 With oChart .ChartWizard Source:=oWK.Range("c2:e" & iRow), gallery:=xlBubble3DEffect, PlotBy:=xlColumns, HasLegend:=False iCount = .FullSeriesCollection.Count For i = .FullSeriesCollection.Count To 1 Step -1 .SeriesCollection(i).Delete Next i '遍历创建所有系列 For i = 0 To UBound(arrKeys) Dim oRng As Range Set oRng = oDic.Item(arrKeys(i)) Debug.Print oRng.Address Set oSeries = .SeriesCollection.NewSeries With oSeries .Name = arrKeys(i) .XValues = oRng.Offset(0, 2) .Values = oRng.Offset(0, 3) .BubbleSizes = oRng.Offset(0, 4) End With Next i End With End Sub
以上是用vba创建多系列气泡图的通用代码。
发表评论