Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel中图表(绘图区域)的精确定位_Excel_Vba - Fatal编程技术网

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

Excel中图表(绘图区域)的精确定位,excel,vba,Excel,Vba,我试图在两个单独的图表中左对齐两个绘图区域。两个图表都有一个x轴和两个y轴。我尝试使用以下代码(通过宏记录器获得),但图表没有对齐。我还附上了问题的图片。我错过了什么 编辑:我应该添加Chart2与Chart1具有相同的宽度,但高度不同(如代码中所示)。如果我将图表的尺寸设置为相同,则它们会完全对齐。我认为左侧和顶部对齐将垂直对齐绘图区域,因为它们具有相同的宽度(1140)) VBA: 红色虚线表示未对准: 您可以使用绘图区域的InsideLeft和InsideWidth方法 Sub align

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

编辑:我应该添加
Chart2
Chart1
具有相同的宽度,但高度不同(如代码中所示)。如果我将图表的尺寸设置为相同,则它们会完全对齐。我认为
左侧
顶部
对齐将垂直对齐绘图区域,因为它们具有相同的宽度(1140))

VBA:

红色虚线表示未对准:


您可以使用绘图区域的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

首先确保ChartObject对象具有相同的Left属性,然后调整值轴宽度属性的差异。绘图区域包括轴。
Sub alignPlotArea()
    For Each chtObj In ActiveSheet.ChartObjects
        chtObj.Activate
        With ActiveChart.PlotArea
          .InsideLeft = 40
          .InsideWidth = 420
        End With
    Next chtObj
End Sub