Excel vba - изменение количества строк в диапазоне в серии и метке оси - PullRequest
0 голосов
/ 27 февраля 2019

Я новичок в vba, и мне нужна помощь с чем-то.Для многих графиков у меня огромный диапазон, а затем мне нужно скрыть неиспользуемые диапазоны, и это особенно сбивает с толку, когда я передаю графики в ppt.Мне нужен макрос для изменения диапазонов строк ... столбцы остаются неизменными.Что-то вроде:

Sub test()

Dim YearB As Integer
Dim YearE As Integer
Dim i As Long
Dim j As Long
Dim sht As Worksheet
Dim cht As ChartObject
Dim srs As Series

YearB = InputBox("Beggining Year")

YearE = InputBox("Ending Year")


'define the rows corresponding to the year
i = YearI - 1994

j = YearF - 1994


Set sht = ActiveSheet
    With sht
        For Each cht In .ChartObjects
            For Each srs In cht.Chart.SeriesCollection
                    'code to change rows in range and axis



            Next srs
        Next cht
    End With
End Sub

Может кто-нибудь мне помочь, пожалуйста ??!

1 Ответ

0 голосов
/ 27 февраля 2019

Я не уверен, что точно понял, что вы хотите сделать, но если вы хотите автоматизировать весь процесс обновления диаграмм в PowerPoint, а не переносить новые диаграммы вручную из Excel, вы можете фактически обновить диапазоны существующих диаграмм.непосредственно в powerpoint. Попробуйте что-то вроде ниже.VBA берет диапазон из активного листа.

Dim PPTApp As Object
Dim PPTPres As Object
Dim ppSlide As PowerPoint.Slide

Set PPTApp = CreateObject("PowerPoint.Application")
PPTApp.Visible = True

'This opens your powerpoint presentation
Set PPTPres = PPTApp.Presentations.Open("file:///C:\Users\first.name\Desktop\pptest111.pptx")
PPTPres.Windows(1).Activate

'This sets the range for x-axis labels
PPTPres.Slides(2).Shapes("Diagram1").Chart.SeriesCollection(1).XValues = "Sheet2!$D$5:$D15"
'This sets the new range of values
PPTPres.Slides(2).Shapes("Diagram1").Chart.SeriesCollection(1).Values = "Sheet2!$E$5:$E8"

PPTPres.Slides(2).Shapes("Diagram1").LinkFormat.Update
...