精确定位Excel中的图表(绘图区域)

时间:2013-12-08 21:01:40

标签: excel excel-vba vba

我试图在两个单独的图表中左对齐两个绘图区域。两个图表都有一个x轴和两个y轴。我尝试使用以下代码(我通过宏记录器获得),但图表未对齐。我还提供了问题的图片。我错过了什么?

编辑:我应该补充一点,Chart2具有相同的宽度,但高度不同于Chart1(如代码所示)。如果我将图表的尺寸设置为相同,则它们会完美对齐。我认为LeftTop对齐将垂直对齐绘图区域,因为它们都具有相同的宽度(1140)。)

VBA:

    ActiveSheet.ChartObjects("Chart1").Activate
    ActiveSheet.Shapes("Chart1").Width = 1200
    ActiveChart.PlotArea.Select
    Selection.Left = 10
    Selection.Top = 8
    ActiveChart.PlotArea.Select
    Selection.Width = 1140
    Selection.Height = 310

    ActiveSheet.ChartObjects("Chart2").Activate
    ActiveSheet.Shapes("Chart2").Width = 1200
    ActiveChart.PlotArea.Select
    Selection.Left = 10
    Selection.Top = 8
    ActiveChart.PlotArea.Select
    Selection.Width = 1140
    Selection.Height = 110

红色虚线表示错位:

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用plotArea的InsideLeft和InsideWidth方法

Sub alignPlotArea()
    For Each chtObj In ActiveSheet.ChartObjects
        chtObj.Activate
        With ActiveChart.PlotArea
          .InsideLeft = 40
          .InsideWidth = 420
        End With
    Next chtObj
End Sub