首页 > 解决方案 > 将数据标签添加到 Excel 图表 - 耗时

问题描述

我有一个代码,可以将数据标签添加到图表上的选定点。下面的代码部分大约需要 4 秒。这对我正在研究的镜头来说太长了。有任何想法吗?

我的电脑有合理的规格。我正在使用 Office 2013。在此处输入图像描述

        Set SRS = ChartObjects.SeriesCollection(Arg1)
        If SRS.Points(Arg2).HasDataLabel = False Then
            ChartObjects.SeriesCollection(Arg1).Points(Arg2).HasDataLabel = True
            ChartObjects.SeriesCollection(Arg1).Points(Arg2).DataLabel.Text = "Case: #" + CStr(CaseCoUnter)
            Select Case True
                Case Upper
                    ChartObjects.SeriesCollection(Arg1).Points(Arg2).DataLabel.Position = xlLabelPositionAbove
                Case Lower
                    ChartObjects.SeriesCollection(Arg1).Points(Arg2).DataLabel.Position = xlLabelPositionBelow
            End Select

        End If

标签: excelvbaexcel-charts

解决方案


我也有英特尔处理器,但速度略低,为 2.60 GHz,只有 8 GB 的 RAM。然而,当我测试您发布的代码时,我单击了一个数据点,它立即添加了数据标签。因此,如果您需要大约 4 秒,可能是因为您在事件过程中有其他代码减慢了它的速度。在任何情况下,您的代码都可以重写如下......

    Set SRS = ChartObjects.SeriesCollection(Arg1)
    With SRS.Points(Arg2)
        If .HasDataLabel = False Then
            .HasDataLabel = True
            .DataLabel.Text = "Case: #" + CStr(CaseCoUnter)
            Select Case True
                Case Upper
                    .DataLabel.Position = xlLabelPositionAbove
                Case Lower
                    .DataLabel.Position = xlLabelPositionBelow
            End Select
        End If
    End With

推荐阅读