0

在我的一个 Excel 模板中,有一个预设图表,可以自动填充从自动表格中获得的数据。

这一切都很好。我遇到的问题是如何稍后在我的代码中引用该图表。

我能收集到的最好的东西是使用 Main.xlBook.Charts(6) 之类的东西,其中 6 是 xlBook 中图表的索引。

    Dim chart As Excel.Chart = CType(Main.xlBook.Charts(6), Excel.Chart)
    chart.Axes(Excel.XlCategoryType.xlTimeScale).MinimumScale = Main.xLSheet1.Cells(2, 1).value / 86277
    chart.Axes(Excel.XlCategoryType.xlTimeScale).MaximumScale = Main.xLSheet1.Cells(radios.Count + 1, 1).value / 86277

使用上面的代码,当我尝试设置对象时它会中断。我不想在运行时制作图表,因为在大多数情况下我根本不需要编辑图表。我让它自动化的方式,它在 95% 的时间内正确填写。我只需要能够调整其他 5% 的范围。

那么有没有办法在运行时没有在 xlbook 中引用图表对象?

ps,作为额外的第二个问题,我将如何在打开选项严格的情况下更改轴?(我目前拥有的方式不是严格友好的选项)

一如既往地感谢大家


更新


弄清楚了

    Dim xlCharts As Excel.ChartObjects = CType(Main.xlSheet3.ChartObjects, Excel.ChartObjects)
    Dim myChart As Excel.ChartObject = xlCharts.Item(5)
    Dim chartPage As Excel.Chart = myChart.Chart
    chartPage.Axes(Excel.XlAxisType.xlCategory).minimumscale = Main.xLSheet1.Cells(2, 1).value
    chartPage.Axes(Excel.XlAxisType.xlCategory).maximumscale = Main.xLSheet1.Cells(radios.Count + 1, 1).value
4

2 回答 2

0

在您的原始代码中为图表设置一个名称。然后你可以按名称调用图表:

Charts("Sales").Activate
于 2013-10-17T22:58:00.843 回答
0

为了使用最小比例和最大比例,你有你的图表对象并设置图表

Dim xlCharts As Excel.ChartObjects = CType(Main.xlSheet3.ChartObjects, Excel.ChartObjects)
Dim myChart As Excel.ChartObject = xlCharts.Item(5)
Dim chartPage As Excel.Chart = myChart.Chart
chartPage.Axes(Excel.XlAxisType.xlCategory).minimumscale = Main.xLSheet1.Cells(2, 1).value
chartPage.Axes(Excel.XlAxisType.xlCategory).maximumscale = Main.xLSheet1.Cells(radios.Count + 1, 1).value

希望这可以帮助

于 2014-01-23T23:50:29.440 回答