Код 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
Но есть некоторые ошибки: