在图表上移动标签

时间:2015-08-05 20:56:18

标签: excel-vba vba excel

我正在尝试为该系列中的每个其他点移动标签,从1点开始,低于该点,并且每个其他点的标签从该点上方的2开始。有没有办法跳过'比如使用常规" for..next"环?如果我执行if的第一部分,它适用于所有点,但我不确定如何只执行其他每一点。

Sub MoveLabels()

  Dim objPt As Point

        For Each objPt In ActiveChart.SeriesCollection(1).Points

                objPt.DataLabel.Position = xlLabelPositionBelow
                objPt.DataLabel.HorizontalAlignment = xlCenter         
                objPt.DataLabel.VerticalAlignment = xlTop
                objPt.DataLabel.Orientation = xlHorizontal

        Next
End Sub

1 个答案:

答案 0 :(得分:2)

这就是我的想法:

Sub MoveLabels()

    Dim objPt As Point
    Dim LabelPosition as xlDataLabelPosition
    LabelPosition = xlLabelPositionBelow   ' Initialize

    For Each objPt In ActiveChart.SeriesCollection(1).Points

            objPt.DataLabel.Position = LabelPosition 
            objPt.DataLabel.HorizontalAlignment = xlCenter         
            objPt.DataLabel.VerticalAlignment = xlTop
            objPt.DataLabel.Orientation = xlHorizontal

            ' Toggle label position
            LabelPosition = Iif(LabelPosition = xlLabelPositionBelow, xlLabelPositionAbove, xlLabelPositionBelow)
    Next
End Sub

或者您可以使用FOR I = 1到.... Points.Count并根据I MOD 2设置位置