如何在Excel 2016中访问新图表?

如何在Excel 2016中访问新图表?,excel,vba,excel-2016,Excel,Vba,Excel 2016,我想通过VBA访问MS Office 2016中添加的新图表,特别是瀑布图 我在手动添加宏时录制了宏,但宏似乎无法识别图表类型。我没有使用MS 2016,但我认为您可以找到图表类型以供将来使用的一种方法是将瀑布图放置在工作表上,然后运行快速子程序,为工作表上的每个图表返回图表。ChartType。它应该返回一个整数值,然后可以使用该整数值将其他图表设置为该类型。代码应该类似于: MsgBox(ActiveSheet.ChartObjects(1).Chart.ChartType) 在最新的Of

我想通过VBA访问MS Office 2016中添加的新图表,特别是瀑布图


我在手动添加宏时录制了宏,但宏似乎无法识别图表类型。

我没有使用MS 2016,但我认为您可以找到图表类型以供将来使用的一种方法是将瀑布图放置在工作表上,然后运行快速子程序,为工作表上的每个图表返回
图表。ChartType
。它应该返回一个整数值,然后可以使用该整数值将其他图表设置为该类型。代码应该类似于:

MsgBox(ActiveSheet.ChartObjects(1).Chart.ChartType)

在最新的Office 365 Insider版本中,宏记录器可以识别瀑布图。下面是我添加瀑布图并将三个条形图设置为总计时记录的代码:

Sub Macro1()
'
' Macro1 Macro
'

'
    ActiveSheet.Shapes.AddChart2(395, xlWaterfall).Select
    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.FullSeriesCollection(1).Select
    ActiveChart.FullSeriesCollection(1).Points(1).Select
    ActiveChart.FullSeriesCollection(1).Points(1).IsTotal = True
    ActiveChart.FullSeriesCollection(1).Points(4).Select
    ActiveChart.FullSeriesCollection(1).Points(4).IsTotal = True
    ActiveChart.FullSeriesCollection(1).Points(7).Select
    ActiveChart.FullSeriesCollection(1).Points(7).IsTotal = True
    Application.CommandBars("Accessibility").Visible = False
    Range("A1").Select
End Sub

请注意,新图表有许多功能,包括瀑布,无法使用VBA访问,甚至无法使用常规用户界面访问。例如,您可以设置垂直轴的最小值和最大值,但不能设置大单位(刻度间距)。

您还应该首先在@Tom I下找到所有图表类型,但它似乎没有显示“瀑布”的值OP引用的图表。我猜枚举尚未更新,尚未包括2016版的新增内容,在这种情况下,此代码应该可以找到类型。它仍然未在Microsoft页面上列出,但如果您在VBIDE对象浏览器中的XlChartType下查找,您可以找到所有新的图表类型,包括XL瀑布。它只是
XL瀑布