【问题标题】:Chart Data Table Sizing Issue图表数据表大小问题
【发布时间】:2017-01-05 00:02:50
【问题描述】:

我正在运行一个宏来调整我的绘图区域的大小,以使报表中的所有图表都统一。但是,当调整绘图区域的大小时,图表数据表也会调整大小,并且数据表中行的标签变为文本包装。如果我手动稍微调整绘图区域的大小,然后文本被修复并自动调整并且不再将文本换行以占用三或四行,则此问题已得到解决。有任何解决这个问题的方法吗?这是我当前的代码。

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

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    通过在移动绘图区域时录制宏,我能够使用 Excel 2010 复制您的问题。运行录制的宏时,数据表图例会调整大小并换行。我无法找到数据表图例的任何直接句柄,但确实发现 .Left.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时的结果

    【讨论】:

    • 所以我现在尝试运行它,但我在 .Width = 350 处遇到了故障,这说明它在本节中的一些图表失败了。我不知道为什么。
    • 另外,注释掉.InsideLeft是否有效?我猜这无关紧要。
    • 你是对的,这是在删除 ActieChart 部分时发生的不相关问题,但我找到了解决方法。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2014-02-05
    • 2020-08-31
    • 2014-11-05
    相关资源
    最近更新 更多