excel – VBA传奇和绘图区域大小调整

我有一个Excel图表,可以更改切片器中的选择.

我注意到绘图区域和图例区域根据所做的选择而变化.

我尝试使用vba修复绘图区域的位置和大小,但遗憾的是这根本不起作用.

绘图区域和图例继续调整大小,使图例与绘图区域重叠.这显然我不想要.

我有这个代码,放在vba编辑器的工作表页面中:

Option Explicit
Private Sub Chart_Calculate()

ChartObjects("grafiek 4").Activate
ActiveChart.PlotArea.Width = 637.783
ActiveChart.Legend.Left = 716.514
ActiveChart.Legend.Width = 176.735
ActiveChart.Legend.Height = 295.334

End Sub

有这个代码,我认为自动调整大小将会消失,但我看到传说有时仍然重叠te区域.

有没有永久解决这个问题的解决方案?

EDIT1:

昨天,我只是为情节区域添加了一些参数.它似乎工作了.但现在我再次尝试,传说再次与情节区域重叠.

我将代码更改为:

Option Explicit
Private Sub Chart_Calculate()

ChartObjects("grafiek 4").Activate
ActiveChart.PlotArea.Top = 33.102
ActiveChart.PlotArea.Left = 67.1
ActiveChart.PlotArea.Width = 637.783
ActiveChart.Legend.Top = 7
ActiveChart.Legend.Left = 716.514
ActiveChart.Legend.Width = 176.735
ActiveChart.Legend.Height = 329.667

End Sub

因此,对于绘图区域还有2个参数.

EDIT2:
我已经在Excel中检查了图例属性.在’传奇选项’下有一个复选框:显示没有重叠绘图区域的图例(我不知道确切的英文文本).
选中此框,但它确实与绘图区域重叠.

为什么不可能实现这一目标?绘图区域和图例的固定大小不应该那么难.

编辑3:
我现在在我的工作簿中有这个例程:

Option Explicit
Private Sub Chart_Calculate()

ChartObjects("grafiek 4").Activate
With ActiveChart
    With .PlotArea
        .Top = 33.102
        .Left = 67.1
        .Width = 637.783
    End With
    With .Legend
        .IncludeInLayout = True
        .Position = xlLegendPositionRight
        .AutoScaleFont = False
        .Font.Size = 8
        .Top = 5
        .Left = 706.899
        .Width = 179.735
        .Height = 336.681
    End With
End With

End Sub
Sub kopieergrafiek()

ActiveSheet.ChartObjects("Grafiek 4").Copy

End Sub

(包括我帖子下方评论中的建议)

我似乎没有工作. worksheet_change事件可能更好吗?

编辑4:
我仍然没有解决这个问题的方法.当一个图例项的名称长到适合空间时,就会发生这种情况.当图例中有许多项目适合可用空间时,也会发生这种情况.

我认为没有解决方案.除非我能以某种方式告诉excel最大化图例中的项目数量.或者最大化系列名称的长度.

最佳答案 我自己正在解决调整区域的传奇问题.我尝试过Portland Runner所建议的,只将.Legend.IncludeInLayout设置为false(从而将传说与他所建议的情节区域分开,也许他犯了错字?)并且我的情节区域不再调整大小.

点赞