点击Excel每日一学,关注星标★不迷路
标签: #VBA一键生成图表
示例数据:


求例代码:
Sub 创建市场份额饼图()Dim ws As WorksheetDim chartObj As chartObjectDim chart As chartDim dataRange As RangeDim lastRow As Long' 设置当前工作表Set ws = ThisWorkbook.Worksheets("Sheet2")' 确定数据范围lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).RowSet dataRange = ws.Range("A1:B" & lastRow)' 删除可能已存在的图表For Each chartObj In ws.ChartObjectschartObj.DeleteNext chartObj' 创建新的饼图Set chartObj = ws.ChartObjects.Add(Left:=250, Top:=50, Width:=500, Height:=400)Set chart = chartObj.chartWith chart' 设置图表类型为饼图.ChartType = xlPie' 设置数据源.SetSourceData Source:=dataRange' 设置图表标题.HasTitle = True.chartTitle.Text = "市场份额分布图".chartTitle.Font.Size = 14.chartTitle.Font.Bold = True' 显示数据标签.ApplyDataLabelsWith .SeriesCollection(1).DataLabels.ShowCategoryName = True.ShowPercentage = True.ShowValue = False.Separator = vbLf & " ".Font.Size = 11.Position = xlLabelPositionOutsideEndEnd With' 设置图例.HasLegend = True.Legend.Position = xlLegendPositionRight.Legend.Font.Size = 11' 设置饼图分离效果(可选).SeriesCollection(1).Explosion = 5' 美化图表外观.ChartArea.Format.Fill.ForeColor.RGB = RGB(240, 240, 240).PlotArea.Format.Fill.ForeColor.RGB = RGB(255, 255, 255).ChartArea.Format.Line.Visible = msoFalse.PlotArea.Format.Line.Visible = msoFalseEnd With' 提示用户MsgBox "市场份额饼图已成功创建!", vbInformation, "完成"End Sub
由于公众号平台更改了推送规则,为确保您能及时收到Excel每日一学的原创分享,请记得关注公众号并设为星标⭐,同时欢迎转发
、点赞
或在看
。也欢迎扫描下方二维码加我个人微信相互学习交流

获取示例文件方式:
关注本公众号 ,后台回复关键字【一键生成饼图】即可获取
长按上面红色的文本,复制到后台发送即可。