当范围内的列数变化时绘制饼图

时间:2017-01-05 13:26:14

标签: excel vba excel-vba

Month   Organic Direct
Dec-15  £3,112  £0

我录制了VBA代码,用于绘制上述数据的饼图。我导出的数据最多可以有6个标题(上面的例子显示了两个标题)。代码设置为选择6列宽的范围。当导出的标题少于6个时,需要手动调整图表。

我需要什么,所以使用的范围仅适用于数据,例如什么时候只有2个标题而不是6个?

2 个答案:

答案 0 :(得分:0)

我不知道您需要多少帮助,因为您没有发布任何代码。

在最简单的情况下,在Excel 2013和2016中,您可以使用

ActiveSheet.Shapes.AddChart2(251, xlPie).Chart.SetSourceData _
    Source:=ActiveSheet.Range("A1").CurrentRegion, PlotBy:=xlRows

在Excel 2007和2010(以及2013和2016年,但它没有应用更好的默认样式):

ActiveSheet.Shapes.AddChart(xlPie).Chart.SetSourceData _
    Source:=ActiveSheet.Range("A1").CurrentRegion, PlotBy:=xlRows

这假设数据在单元格A1中开始,并且正在绘制的数据不会触及任何其他数据(也就是说,最后一列数据右侧有一个空白列,而这两行下面有一个空行用标签和数据显示。 CurrentRegion查找围绕参考范围的数据包含区域(在这种情况下,参考范围是单元格A1),最多为空白行和列。

答案 1 :(得分:-1)

这一切都发生在同一个工作簿中吗?

我首先看一下dynmamic范围,

这是一个很好的起点: https://www.thespreadsheetguru.com/blog/5-ways-to-create-a-dynamic-auto-adjusting-vba-range

也看这里: Using VBA to select a dynamic range of cells and create a chart