2

Excel グラフからすべての空のシリーズを削除しようとしています。

    Dim isEmptySeries As Boolean
    For Series = 1 To .SeriesCollection.count
        .SeriesCollection(Series).ApplyDataLabels Type:=xlDataLabelsShowValue, AutoText:=True, LegendKey:=False
        isEmptySeries = True

        For i = 1 To .SeriesCollection(Series).points.count
            If .SeriesCollection(Series).points(i).DataLabel.Text = 0 Then
                .SeriesCollection(Series).points(i).HasDataLabel = False
            Else
                isEmptySeries = False
                .SeriesCollection(Series).points(i).DataLabel.Font.Size = 17
            End If
        Next i

        If isEmptySeries Then
                .SeriesCollection(Series).Delete
        End If
    Next Datenreihe

スクリプトは ApplyDatalabels 行で失敗します (「オブジェクト チャートのメソッド SeriesCollection が失敗しました」)。シリーズの 1 つが削除されると、Excel はシリーズのインデックスをシフトすると思いますか? そうですか?エラーについて私が持っている唯一の説明です。

他にどのようにシリーズをループして、空のシリーズを削除しますか?

4

1 に答える 1

5

このような状況では、逆の順序でループしてみてください

For i = .SeriesCollection(Series).points.count To 1 Step -1

そう.Deleteすれば、まだループされていないアイテムには影響しません

于 2011-10-25T06:06:54.473 に答える