2016-06-10 2 views
0

Я создаю диаграммы, используя данные из вкладок Team1-Team8. Я создаю диаграммы для каждой команды, но я не могу получить диаграммы на каждой вкладке команды «Команда a - Графики». Ниже приведен код, который я до сих пор использовал только для листа параметров команды A.My, в столбце B указаны названия вкладок для диаграмм, а столбец A - имена команд. Любые указатели помогут.Создание диаграмм с использованием VBA и подпрограмм

Sub LooproutineCharts() 

Dim TeamName As String 
Dim TeamNameCharts As String 

For i = 4 To 12 

TeamName = Sheets("Parameter").Range("A" & i).Value 'identify the location 

TeamNameCharts = Sheets("Parameter").Range("B" & i).Value 'identify the location 

Call Charts(TeamName) ' Call subroutine 

Call Charts(TeamNameCharts) ' Call subroutine 

Next i 

End Sub 

Sub Charts(TeamName As String) 

'Create a Line Chart for Healthy Start Docu' 

Dim lastRow As Long 
Dim ws As Worksheet 
Set ws = Sheets(TeamName) 

With Sheets(TeamName) 
    lastRow = .Range("U" & Rows.count).End(xlUp).Row 
With ws 
    ActiveSheet.Shapes.AddChart.Select 
    ActiveChart.ChartType = xlLineMarkers 
    ActiveChart.Parent.Name = "Variable A" 
    ActiveChart.SetSourceData Source:=.Range("S3:U" & lastRow) 

ActiveSheet.Shapes("Variable A").Top = 20 
ActiveSheet.Shapes("Variable A").Left = 20 
ActiveSheet.Shapes("Variable A").Height = 300 
ActiveSheet.Shapes("Variable A").Width = 700 

ActiveChart.HasTitle = True 
ActiveChart.ChartTitle.Text = "Variable A" TeamName" 



    End With 
    End With 

    End Sub 
+0

в вашем разделе «Charts Sub» в разделе «с ws» вы ссылаетесь на действующую таблицу, которая вполне может быть отличается от ws, поэтому в качестве первого измерения вы можете попытаться удалить ссылку на activesheet, поэтому он просто читает «.Shapes.addChart.Select» –

+0

спасибо за ответ. Я получаю ошибку свойства только для чтения в строке «Parent.Name =« Variable A »« – user3018495

+0

. Вы также используете ее в ChartTitle (хотя синтаксис выключен), но это «переменная A», предназначенная для использования, отличная от ссылки форма? –

ответ

1

Я хотел бы предложить обновление Charts Sub, чтобы сделать использование Worksheet.ChartObjects

Использование ChartObject, вы можете установить его и не будет ссылаться на форму по имени. Это будет выглядеть следующим образом:

Sub Charts(TeamName As String) 
    'Create a Line Chart for Healthy Start Docu' 
    Dim theChart As ChartObject 
    Dim lastRow As Long 
    Dim ws As Worksheet 
    Set ws = Sheets(TeamName) 

    With ws 
     lastRow = .Range("U" & Rows.Count).End(xlUp).Row 

     Set theChart = .ChartObjects.Add(Left:=20, Top:=20, Width:=700, Height:=300) 
     With theChart.Chart 
      .ChartType = xlLineMarkers 
      .SeriesCollection.Add Source:=ws.Range("S3:U" & lastRow) 
      '.SeriesCollection(1).XValues = ws.Range("S2:U2") 'I have no idea where your xaxis is placed, or if it exist 
      .HasTitle = True 
      .ChartTitle.Text = TeamName 
     End With 
    End With 

End Sub 

Я взял на себя смелость предположить, что заголовок диаграммы должен соответствовать TeamName аргумент. Я также сделал его готовым для xAxis, но у меня нет Oidea, если это релевантно, или где он размещен

+0

Это поместило диаграммы на правильные вкладки! благодаря! – user3018495

+0

Почему возникает вопрос -1? – user3018495

+0

Я бы не знал –

Смежные вопросы