Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 尽管设置了位置,Excel图表仍会轻微移动_Vba_Excel_Gantt Chart - Fatal编程技术网

Vba 尽管设置了位置,Excel图表仍会轻微移动

Vba 尽管设置了位置,Excel图表仍会轻微移动,vba,excel,gantt-chart,Vba,Excel,Gantt Chart,我已经创建了一个甘特图,它直接位于从中提取数据的行旁边,因此所有内容都在一条整齐的直线上。有几个月的数据,所以我创建了两个按钮(下一页/上一页),可以从x轴的最小值和最大值中加/减30。因为所有的东西都是排列的甘特图样式,所以我一直在尝试将图表的位置重置为原来的位置。不幸的是,图表仍然在移动,在图表和我的数据之间产生了一个小的差距。非常感谢您的建议 我的图表没有一个角位于单元格的角上,另外一些列以后可能会重新调整大小 Private Sub NEXT_PG_Click() Dim cha

我已经创建了一个甘特图,它直接位于从中提取数据的行旁边,因此所有内容都在一条整齐的直线上。有几个月的数据,所以我创建了两个按钮(下一页/上一页),可以从x轴的最小值和最大值中加/减30。因为所有的东西都是排列的甘特图样式,所以我一直在尝试将图表的位置重置为原来的位置。不幸的是,图表仍然在移动,在图表和我的数据之间产生了一个小的差距。非常感谢您的建议

我的图表没有一个角位于单元格的角上,另外一些列以后可能会重新调整大小

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%
,看看它是否能帮上忙……哈哈哈。谢谢你的回复,请发帖。