Замените «Значение из ячеек» в метках данных диаграммы, используя VBA - PullRequest
0 голосов
/ 16 мая 2018

Я скопировал несколько диаграмм из рабочей книги в другую, и мне удалось изменить ряд данных с помощью vba.

Некоторые метки данных этих диаграмм получают данные " Из ячеек «но этот диапазон все еще ссылается на первую рабочую книгу, и мне нужно изменить ее, чтобы она ссылалась на новый лист в новой рабочей книге.

Я могу получить формулу, которая ссылается на« Из ячеек ».

Это код, который у меня есть

Sub xtDataLabels_FromCells()
    Dim oChart As ChartObject
    Dim OldString As String, NewString As String
    Dim mySrs As Variant

    OldString = "'[Daily Report]SP'!$P$11:$P$20"
    NewString = "SP!$P$11:$P$20"

    For Each oChart In ActiveSheet.ChartObjects
        For Each mySrs In oChart.Chart.SeriesCollection
            ' From a recorded macro
            'ActiveChart.SeriesCollection(7).DataLabels.Format.TextFrame2.TextRange. _
                InsertChartField msoChartFieldRange, "=SP!$P$11:$P$20", 0
        Next
    Next
End Sub

«Значение из ячеек»

enter image description here

С уважением, Элио Фернандес

1 Ответ

0 голосов
/ 19 мая 2018

Я не думаю, что это именно то, что вы хотите. Ваш код просматривает все серии всех диаграмм и, очевидно, хочет использовать один и тот же диапазон для меток. Это сделает это:

Sub xtDataLabels_FromCells()
    Dim oChart As ChartObject
    Dim OldString As String, NewString As String
    Dim mySrs As Variant

    OldString = "'[Daily Report]SP'!$P$11:$P$20" ' irrelevant
    NewString = "SP!$P$11:$P$20"

    For Each oChart In ActiveSheet.ChartObjects
        For Each mySrs In oChart.Chart.SeriesCollection
            ' From a recorded macro
            mySrs.DataLabels.Format.TextFrame2.TextRange. _
                InsertChartField msoChartFieldRange, "=" & NewString, 0
        Next
    Next
End Sub

Если вы хотите найти и заменить существующее поле диаграммы, боюсь, вам не повезло. Вы можете использовать VBA для установки поля диаграммы с помощью InsertChartField, но вы не можете использовать VBA для чтения того, что находится в существующем поле диаграммы.

Еще один недостаток диаграмм объектной модели VBA для Excel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...