VBA图表的程序化定位已停止工作

时间:2009-06-25 09:25:48

标签: excel vba excel-vba charts

我正在使用此例程,由Worksheet_Change事件触发,以显示所选图表并将所有其他图表移至屏幕外的保留位置。

Sub shuffleCharts(chartName As String)
    Dim analysisChart As ChartObject

    For Each analysisChart In ActiveSheet.ChartObjects
        With analysisChart
            .Left = 1575
        End With
    Next analysisChart

    With ActiveSheet.ChartObjects(chartName)
        .Left = 15
    End With
End Sub

直到大约20分钟前才开始工作,但现在拒绝重新定位图表。在Locals窗口中检查时,它不会抛出任何错误,并且对象和变量似乎都是正确的。

我唯一能够以某种方式影响图表的方法是尝试在另一个模块中突出显示图表系列数据源的方法。这是一个非常早期的阶段,实际上只是探索各种方法和属性,因为我不经常操纵图表。

我重新启动了Excel并检查了昨天保存时正常工作的版本,但结果是一样的。 我还没有重新启动,因为我的机器上运行了一个bug db,我宁愿等到午餐时间才能关闭。编辑:厌倦了,无论如何都重新启动了 - 问题仍然存在。< / p>

知道可能导致这种情况的原因,以及我如何让它再次运作?

编辑:这更加怪异。通过手动调用该过程,如下所示:

Call shuffleCharts("Chart 1")

该程序仍然按预期工作。但是,如果我声明一个字符串并将其作为图表的名称传递......

Dim myChart as String
myChart = "Chart 1"
Call shuffleCharts(myChart)

...然后它不起作用。 WTF?

编辑2:我已经确认代码仍然在其他计算机上按预期执行,所以看起来我的机器已经受到一些奇怪的影响了一些“东西”我已经完成。我仍然很想知道那件事可能是什么。

1 个答案:

答案 0 :(得分:0)

嗯,我已经对此进行了分类,但我并不确定如何。我正在讨论连接对象,它似乎已经解决了。

Excel 1 - 0 Lunatik