gpt4 book ai didi

excel - VBA 图例和绘图区域调整大小

转载 作者:行者123 更新时间:2023-12-01 06:30:51 27 4
gpt4 key购买 nike

我有一个 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

有了这段代码,我认为自动调整大小会消失,但我看到图例有时仍然与绘图区域重叠。

是否有永久解决此问题的解决方案?

编辑1:

昨天,我只是为绘图区域添加了一些参数。那时它似乎奏效了。但现在我又试了一次,图例再次与情节区域重叠。

我将代码更改为:
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 个参数。

编辑2:
我已经检查了 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:
我仍然没有解决这个问题的方法。当 1 个图例项的名称太长以适应空间时,它已经发生了。当图例中有很多项目适合可用空间时,也会发生这种情况。

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

最佳答案

我自己也有这个问题,传说调整情节区域的大小。我尝试了 Portland Runner 的建议,仅将 .Legend.IncludeInLayout 设置为 false (从而按照他的建议将图例与绘图区域分开,也许他打错了?)并且我的绘图区域不再调整大小。

关于excel - VBA 图例和绘图区域调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26611441/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com