Именованный диапазон VBA, содержащий смещения, фиксируется на графике - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть динамическая таблица со значениями в столбце Y:

создаю series1 в менеджере имен с формулой =OFFSET('Sheet1'!$Y$16,0,0,COUNTA('Sheet1'!$Y$16:$Y$5012),1)

Я хочу построить график через VBA, поэтому я делаю

cht.Chart.SetSourceData Source:="=series1"

но на графике я получаю "='Sheet1'!$Y$16:$Y$43", потому что данные останавливаются в строке 43

вместо

='static bbg data'!series1

Так что позже, если я добавлю строки в свою таблицу в столбце Y, они не будут обновлены на графике по сравнению с тем, как я должен был создать свою диаграмму и добавить ='static bbg data'!series1 вручную.

Не могли бы вы помочь мне решить эту проблему?

Спасибо за помощь

1 Ответ

0 голосов
/ 14 ноября 2018

Добавить процедуру обновления

Поместите процедуру обновления в модуль

Sub UpdateChartSourceData()
    With Worksheets("SheetWithChart")
        cht.Chart.SetSourceData Source:=.Range("series1")
    End With
End Sub

и поместите это в свой лист с данными диаграммы

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("series1")) Is Nothing Then
        cht.Chart.SetSourceData Source:=Me.Range("series1")
    End If
End Sub

для обновленияграфик каждый раз, когда данные меняются.

Возможно, вам потребуется определить / настроить cht в приведенном выше коде.


Или использовать отформатированные таблицы

Более простой способбудет использовать отформатированную таблицу для исходных данных.И сделайте диаграмму, используя эту полную таблицу в качестве источника.Таким образом, диаграмма автоматически обновляется, если в таблицу добавляются строки или столбцы.

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