Наименование диаграммы, созданной с помощью .shapes.chart - PullRequest
0 голосов
/ 14 марта 2019

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

Sub CreatePivotChart()

    Dim sh As Shape
    Dim ws As Worksheet
    Dim ch As Chart
    Dim pt As PivotTable

    DeleteAllChartObjects

    'setting ws and sh will be done alot here. It's basically making it easy for yourself by making a new (short name):
    Set ws = Worksheets("Analysis")
    Set sh = ws.Shapes.AddChart(XlChartType:=xlColumn, Width:=400, Height:=200)


    'This part to make sure that when there's no cell selected when running the code) within the pivottable, it still works
    Set ch = sh.Chart


    'Acipivot is created as title for the pivottable in sbCreativpivot:
    Set pt = Worksheets("PivotTable").PivotTables("Acpivot")
    ch.SetSourceData pt.TableRange1

    'align the chart with the table:
    sh.Top = pt.TableRange1.Top
    sh.Left = pt.TableRange1.Left + pt.TableRange1.Width + 10

End Sub

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

Вот моя последняя попытка:

'This part to make sure that when there's no cell selected when running the code) within the pivottable, it still works
Set ch = sh.Chart
With ch
    With .Parent.Name = "test"
    End With
End With

Но если я тогда попытаюсь сослаться на это, как здесь:

Sub EditPivotChart()

    Dim pt As PivotTable
    Dim ch As Chart
    Dim pf As PivotField

    Set ch = Charts("test")
    Set pt = ch.PivotLayout.PivotTable

    For Each pf In pt.VisibleFields
        pf.Orientation = xlHidden
    Next pf

End Sub

Я получаю ошибку

VBA исчерпал память

Кто-нибудь видит, что я не так делаю?

Спасибо!

1 Ответ

0 голосов
/ 14 марта 2019

Вы можете удалить все следующие сегменты

With ch
    With .Parent.Name = "test"
    End With
End With

и просто замените его на

sh.Name = "test"

Это должно сработать.

...