Vba 尽管设置了位置,Excel图表仍会轻微移动
我已经创建了一个甘特图,它直接位于从中提取数据的行旁边,因此所有内容都在一条整齐的直线上。有几个月的数据,所以我创建了两个按钮(下一页/上一页),可以从x轴的最小值和最大值中加/减30。因为所有的东西都是排列的甘特图样式,所以我一直在尝试将图表的位置重置为原来的位置。不幸的是,图表仍然在移动,在图表和我的数据之间产生了一个小的差距。非常感谢您的建议 我的图表没有一个角位于单元格的角上,另外一些列以后可能会重新调整大小Vba 尽管设置了位置,Excel图表仍会轻微移动,vba,excel,gantt-chart,Vba,Excel,Gantt Chart,我已经创建了一个甘特图,它直接位于从中提取数据的行旁边,因此所有内容都在一条整齐的直线上。有几个月的数据,所以我创建了两个按钮(下一页/上一页),可以从x轴的最小值和最大值中加/减30。因为所有的东西都是排列的甘特图样式,所以我一直在尝试将图表的位置重置为原来的位置。不幸的是,图表仍然在移动,在图表和我的数据之间产生了一个小的差距。非常感谢您的建议 我的图表没有一个角位于单元格的角上,另外一些列以后可能会重新调整大小 Private Sub NEXT_PG_Click() Dim cha
Private Sub NEXT_PG_Click()
Dim chart_height As Single, chart_length As Single, chart_top As Single, chart_left As Single
'Saving original position to save later
With ActiveSheet.ChartObjects("Chart 2")
chart_height = .Height
chart_width = .Width
chart_top = .Top
chart_left = .Left
End With
'Displaying next 30 days of data
With ActiveSheet.ChartObjects("Chart 2").Chart.Axes(xlValue)
.MinimumScale = .MinimumScale + 30
.MaximumScale = .MaximumScale + 30
End With
'Trying to set original location and size
With ActiveSheet.ChartObjects("Chart 2")
.Height = chart_height
.Width = chart_width
.Left = chart_left
.Top = chart_top
End With
End Sub
更新:作为临时修复,我尝试将绘图区域的位置设置为特定位置,但这会使情况变得更糟。请参见以下对“尝试使用”语句的更改:
With ActiveSheet.ChartObjects("Chart 2").Chart.PlotArea
.Height = Range("A8:A30").Height
.Width = Range("J6:U6").Width
.Top = Range("J8").Top
.Left = Range("J8").Left
End With
我们是否丢失了更多的代码?我不明白你为什么要碰这个地方。如果一次更改一个属性(而不是全部4个),它是否只针对特定的属性移动?如果是,移动是否取决于财产的绝对价值?在这种情况下,Excel存储位置的精度可能比实际渲染的精度更高,并且在将值发送回时进行有效的舍入。如果您多次运行代码,是否会发生这种情况?还是第一次?嗨,拜伦,谢谢你的回复。当我逐步执行最后一个“with”语句时,图形在任何赋值过程中都不会移动,即使我看到变量已赋值。奇怪的是,每次我单击“下一页”按钮时,图表都会移动,但到第五次时,它会回到开始的位置。我补充说,这可能会让它更清晰。在图中,我使用了上一个按钮,但这使用了相同的代码。我还应该注意,我的图形有一个辅助轴来创建当前日期线。有时,
放大
/缩小
功能无法正常工作。试试100%
,看看它是否能帮上忙……哈哈哈。谢谢你的回复,请发帖。