2017-08-24 54 views
0

012BVBA試圖創建一個宏,它會自動創建一個圖表與預先設置的佈局,但部分關於數據系列邊界顏色和內部顏色不起作用可以任何人幫助我出去VBA試圖更改columncluster圖

Sub Macrochart() 

     Dim myChart As ChartObject 
     Dim mySeries As Series 

     Set myChart = ActiveSheet.ChartObjects.Add(100, 50, 200, 200) 

     With myChart 

     .Chart.SetSourceData Source:=Selection 
     .Chart.ChartType = xlColumnClustered 
     .Chart.ApplyLayout (8) 

     For Each mySeries In myChart.SeriesCollection 
     With mySeries 
       .Series.Border.LineStyle = xlSolid 
       .Series.Border.Color = vbBlack 
       .Series.Interior.Color = vbWhite 

      End With 
      Next 
      End With 

    End Sub 

這是宏觀香港專業教育學院一直試圖用我是真正的新的VBA所以沒有真正的線索,我在做什麼

回答

0

代碼的這種修改爲我工作。就目前來看,只有當前選擇確實能夠正確選擇源數據時,它纔會起作用。最好定義一個定義源數據的範圍對象。如果您有任何問題,請告訴我。

Sub Macrochart() 
Dim myChart As ChartObject 
Dim mySeries As Series 
Set myChart = ActiveSheet.ChartObjects.Add(100, 50, 200, 200) 
With myChart 
.Chart.SetSourceData Source:=Selection 
.Chart.ChartType = xlColumnClustered 
.Chart.ApplyLayout (8) 

For Each mySeries In .Chart.SeriesCollection 
    With mySeries 
    .Border.LineStyle = xlSolid 
    .Border.Color = vbBlack 
    .Interior.Color = vbWhite 
    End With 
    Next 
End With 
End Sub 
+0

太感謝你了,哈哈開始變得很沮喪 –

+0

如果你的問題已經回答了,請標記爲已回答,以便其他人知道。否則,提問直到你滿意爲止。 –

+0

是否有每個選區的廣告x值? –

0

這裏是一個測試數據重寫範圍增加(只是刪除線測試後)

Sub Macrochart() 

    ' fill test data 
    ActiveSheet.Range("a1:b5") = Application.Transpose(Array(Array(1, 2, 3, 4, 5), Array(23, 45, 67, 33, 12))) 

    Dim myChart As ChartObject 
    Set myChart = ActiveSheet.ChartObjects.Add(100, 50, 200, 200) 

    With myChart.Chart 
'  .SetSourceData Source:=Selection  ' original posted code 
     .SetSourceData Source:=Range("a1:b5") ' test range 
     .ChartType = xlColumnClustered 
     .ApplyLayout (8) 
    End With 

    Dim mySeries As Series 
    For Each mySeries In myChart.Chart.SeriesCollection 
     With mySeries 
      .Border.LineStyle = xlSolid 
      .Border.Color = vbBlack 
      .Interior.Color = vbWhite 
     End With 
    Next 

End Sub