我有一个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(从而将传说与他所建议的情节区域分开,也许他犯了错字?)并且我的情节区域不再调整大小.