图表数据表大小问题

我正在运行一个macros来调整我的绘图区域,使所有graphics在报告中统一。 但是,在调整绘图区域的大小时,“图表数据表”也将resize,并且“数据表”中的行的标签将变为文本包装。 这个问题是固定的,如果我手动调整绘图区的大小,然后文本是固定的,并自动调整,不再包含文字,占用三或四行。 有任何解决这个问题的方法吗? 这是我现在的代码。

Sub Color_Loop_Series() Dim sht As Worksheet Dim CurrentSheet As Worksheet Dim cht As ChartObject Dim ser As Series For Each sht In ActiveWorkbook.Worksheets For Each cht In sht.ChartObjects cht.Activate ActiveChart.ChartType = xlLineMarkers ActiveChart.Legend.Position = xlLegendPositionBottom ActiveChart.Legend.Font.Size = 9 ActiveChart.PlotArea.Select Selection.Width = 380 Selection.Left = 11 Selection.Top = 3 Selection.Height = 250 ActiveChart.Axes(xlValue).AxisTitle.Position = xlAxisPositionLeft ActiveChart.DataTable.Font.Size = 5.5 Next cht Next sht End Sub 

我能够通过在移动绘图区域时录制macros来使用Excel 2010复制您的问题。 在运行logging的macros时,数据表图例resize和文本包装。 我无法find数据表图例的任何直接句柄,但确实发现.InsideLeft.InsideLeft都会影响文字换行。

这里是你的代码, 修改一下,删除所有的Active语句。

 Sub Color_Loop_Series() Dim sht As Worksheet Dim CurrentSheet As Worksheet Dim cht As ChartObject Dim ser As Series For Each sht In ActiveWorkbook.Worksheets For Each cht In sht.ChartObjects With cht.Chart .ChartType = xlLineMarkers .Legend.Position = xlLegendPositionBottom .Legend.Font.Size = 9 .DataTable.Font.Size = 5.5 .Axes(xlValue).AxisTitle.Position = xlAxisPositionLeft End With With cht.Chart.PlotArea .Width = 380 .Height = 250 .Left = 11 .Top = 3 .InsideLeft = 80 '<- Adjust this value End With Next cht Next sht End Sub 

使用.InsideLeft时的结果

在这里输入图像说明


结果不使用.InsideLeft

在这里输入图像说明