Код VBA для Excel. Как создать графики в отдельных листах?

У меня есть вопрос относительно того, как автоматически создавать графики (диаграммы) с использованием кода VBA. У меня может быть документ Excel с двумя видами столбцов: столбцы, которые могут быть сгруппированы в 6, или столбцы, которые могут быть сгруппированы в 7. Первые 2 изображения показывают, как я получаю документ Excel.

Что мне нужно сделать, это:

Шаг 1. скопировать столбец A и поставить его перед каждой группой из 6 или 7 столбцов, а также вставить пустой столбец, как на рисунке 3.

Шаг 2. создать график для каждой новой группы, созданной на новом листе (например, если у меня есть 100 групп столбцов, я хочу иметь 100 листов графиков. каждый график на одном листе)

вопрос: Как поместить каждый график в отдельные листы?

Если вам нужно, имя первого листа"КАПОТ"

Код, написанный мной, может выполнить шаг 1, а также создает графики, но проблема в том, что я не могу поместить каждый график на один лист.

Я могу выполнить Шаг 1, а из Шаг 2 я могу только создавать графики, но я не могу поместить каждый график в новый лист.

Sub Macro_Linearity_Plot()

        Dim pas As Integer
        Dim val As Integer

        Dim lCol As Integer
        Dim i As Integer
        Dim uCol As Integer


        ' define the numbers of columns. it can be 6 or 7 columns.

        lCol = Cells(1, Columns.Count).End(xlToLeft).Column
        val = Range("A1").Value
        pas = val + 2


        ' insert 2 new empty columns

        For colx = pas To lCol Step pas

        Columns(colx).Insert Shift:=xlToRight
        Columns(colx).Insert Shift:=xlToRight
        Next



        ' insert column number 1

        For colx = pas + 1 To lCol Step pas
        Sheets("HOOD").Columns(1).Copy
        Sheets("HOOD").Columns(colx).PasteSpecial xlPasteValues
        Next

        ' for every group of columns created at the last step generate a chart

        uCol = Cells(1, Columns.Count).End(xlToLeft).Column
        For i = -1 To uCol Step pas
        Range(Cells(2, i + 2), Cells(121, i + pas)).Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.SetSourceData Source:=Range(Cells(2, i + 2), Cells(121, i + pas))
        ActiveChart.ChartType = xl3DArea
        Next



        End Sub

Спасибо :)

ОБНОВЛЕНО

Новый код:

    Sub Macro_Linearity_Plot()

        Dim pas As Integer
        Dim val As Integer

        Dim lCol As Integer
        Dim i As Integer
        Dim uCol As Integer


        ' define the numbers of columns. it can be 6 or 7 columns.

        lCol = Cells(1, Columns.Count).End(xlToLeft).Column
        val = Range("A1").Value
        pas = val + 2


        ' insert 2 new empty columns

        For colx = pas To lCol Step pas

        Columns(colx).Insert Shift:=xlToRight
        Columns(colx).Insert Shift:=xlToRight
        Next



        ' insert column number 1

        For colx = pas + 1 To lCol Step pas
        Sheets("HOOD").Columns(1).Copy
        Sheets("HOOD").Columns(colx).PasteSpecial xlPasteValues
        Next

        ' for every group of columns created at the last step generate a chart

        uCol = Cells(1, Columns.Count).End(xlToLeft).Column
        For i = -1 To uCol Step pas


        Range(Cells(2, i + 2), Cells(121, i + pas)).Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.SetSourceData Source:=Range(Cells(2, i + 2), Cells(121, i + pas))
        ActiveChart.ChartType = xl3DArea
          xx = 1  'Just to identify the Graph order

ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Chart" & xx

'Count the sheets and Charts for moving Chart to the end
ws = ThisWorkbook.Worksheets.Count
cht = ThisWorkbook.Charts.Count

Sheets("Chart" & xx).Move After:=Sheets(ws + cht)

xx = xx + 1


        Next



        End Sub

Но есть некоторые ошибки:

Ответы на вопрос(0)

Ваш ответ на вопрос