【问题标题】:When placing multiple charts in a chart sheet, how do I change chart properties using vba?在图表工作表中放置多个图表时,如何使用 vba 更改图表属性?
【发布时间】:2012-01-24 18:03:40
【问题描述】:

我可以通过创建一个空图表表,然后将图表的位置设置为该空图表表,将多个图表放在一个图表表上。

'This creates multiple charts within a single chart sheet!

Charts.Add 'Creates empty chart page when empty cell is selected

'Keep track of chart page for later reference
Dim chartSheet As String
chartSheet = ActiveChart.Name

.... 'Create three separate charts with data here

'Now place these charts within our empty chart page

Set chart1 = chart1.Location(Where:=xlLocationAsObject, Name:=chartSheet)
Set chart2 = chart2.Location(Where:=xlLocationAsObject, Name:=chartSheet)
Set chart3 = chart3.Location(Where:=xlLocationAsObject, Name:=chartSheet)

到目前为止,所有代码都可以正常工作。图表表包含所有 3 个图表,尽管这些图表都是重叠的。当我尝试调整图表的位置时...

'This code fails to run!
chart1.Parent.Top = 0
chart1.Parent.Left = 0

代码返回对象不支持此属性或方法的运行时错误。我知道可以通过单击和拖动来手动移动图表,并且我知道如果图表在正常工作表中,上面的代码就可以工作。但由于某种原因,当图表位于图表表中时,此代码会失败。有什么方法可以让 VBA 做我想做的事吗?

感谢您的帮助。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    经过一些实验,我相信您的代码没有运行,因为 chart1 是它自己的工作表。

    当我钻入选定的图表时,我注意到以下差异。如果图表是嵌入的(对象在另一个工作表中),Parent 是一个Object/ChartObject,它具有Top 和Left 的属性(它是工作表中的相对位置)。如果图表是它自己的工作表,Parent 实际上是Object/Thisworkbook' which does not haveToporLeft' 属性。这是有道理的,因为当您创建 chartSheet 时,图表会填充整个工作表区域,因此不能有相对位置。

    如果你在chart1.Parent.Top = 0 上插入断点并查看本地人......你可以看到我上面解释的内容。

    编辑:建议您在 cmets 中重新询问您的问题。

    子项包含在工作表对象的“形状”集合中。我使用以下内容显示工作表中所有形状的名称

    For i = 1 To ActiveWorkbook.ActiveSheet.Shapes.Count
        temp = temp & i & " " & ActiveWorkbook.ActiveSheet.Shapes(i).Name & vbCr
    Next
    
    MsgBox temp
    

    从那里你应该能够移动和格式化等。

    【讨论】:

    • 我也很怀疑。 chart1.Parent 没有引用我认为它会引用的内容是有道理的。我使用了您的提示并更仔细地分析了对象模型。我认为它的工作方式是这样的:chart1 属于工作簿本身,但我想要的三个图表实际上是 chart1 的 children。如果我能找到包含在外部图表中的图表对象,那么我就可以操纵这些位置。
    • 我已经更新了我的答案,提出了一个循环遍历孩子的解决方案
    猜你喜欢
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多