在Excel宏函数中插入饼图

时间:2017-09-19 03:49:58

标签: excel vba excel-vba excel-formula

我是宏功能的新手。我一直试图通过宏功能在Excel中的Subject_name字段(X,Y,Z)上插入饼图。单击宏命令按钮时,用户应该能够绘制此图形。基本上,它应该计算,然后使用数字绘制图表。

以下是当前数据的示例:

Channel_Type | Channel_Category | Category | **Subject_Name**
  MICROBLOG          General         A           X
   Forum             General         A           Z
   BLOG              General         A           Y
   FORUM             General         A           X
  MICROBLOG          General         A           Z
   BLOG              General         A           Z

这是期望的结果:

X:2 | Y:1 | Z:3

enter image description here

这是我之前尝试绘制整张图表的图表,但我不确定如何选择一列:

Option Explicit

Sub Example()
Dim cht As ChartObjects
For Each cht In Worksheets(1).ChartObjects

Next cht
cht.Chart.ChartType = xlPie


End Sub

我被困了一段时间。感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

在绘制图表之前,您需要汇总数据并提供要在图表中绘制的数字。图表不会自动执行此操作,并且没有图表可以绘制文本值。

有很多方法可以将数据聚合为饼图所需的三个数字值,例如使用Countif的数据透视表或公式。或者你可以编写循环文本值的VBA并将计数聚合成三个变量。

生成数字后,您可以使用它们来创建图表。

以上任何一项都可以手动完成或使用VBA完成。如果使用Pivot方法,甚至可能不需要VBA。这取决于你的情况。

答案 1 :(得分:1)

考虑在包含最后一个计数列的表格中设置数据。您可以在此输入= 1(假设每行是唯一的记录),它将自动填充每一行。关闭'主题名称'创建一个数据透视表(饼图)。和'计算'领域。然后,您可以将pivottable的刷新与命令按钮绑定(如果必须使用VBA),并且图表将在按下按钮时更新。 Excel表格中的数据意味着它还会添加新的行。

答案 2 :(得分:0)

您可以在没有VBA的情况下完全执行此操作,甚至可以自动更新。

H2中的公式为=COUNTIF(D:D,G1)并向下复制到H4。 图表只是通过菜单手动插入:

  • 选择G1:H4
  • menu => insert =>图表(选择2D圆圈)
  • 选择您喜欢的模板

如果您在A-D列中添加条目,此图表将自动更新。

没有VBA!