2015-09-15 214 views
0

我有一個代碼來改變我的酒吧在我的條形圖的顏色,但現在它給了我一個類型不匹配。請幫我修復我的代碼。使條形圖不同的顏色

Sub UpdateChart() 

Dim myChartObj As ChartObject 
Dim myChart As Chart 
Dim mySeries(1 To 10) As Series 
Dim myChartFormat(1 To 10) As ChartFormat 
Dim myFillFormat(1 To 10) As FillFormat 
Dim myColorFormat(1 To 10) As ColorFormat 

ActiveSheet.ChartObjects(1).Activate 

Set myChart = ActiveChart 

For i = 1 To 10 

    Set mySeries(i) = myChart.SeriesCollection(i) 
    Set myChartFormat(i) = mySeries(i).Format 
    Set myFillFormat(i) = myChartFormat(i).Fill 
    Set myColorFormat(i) = myFillFormat(i).ForeColor 


    If i = 1 Then 

    myColorFormat(i).RGB = getRGB1(Cells(12, 7)) 

    ElseIf i = 2 Then 

    myColorFormat(i).RGB = getRGB1(Cells(12, 7)) 

    ElseIf i = 3 Then 

    myColorFormat(i).RGB = getRGB1(Cells(12, 8)) 

    ElseIf i = 4 Then 

    myColorFormat(i).RGB = getRGB1(Cells(12, 9)) 

    ElseIf i = 5 Then 

    myColorFormat(i).RGB = getRGB1(Cells(12, 10)) 

    ElseIf i = 6 Then 

    myColorFormat(i).RGB = getRGB1(Cells(12, 11)) 

    ElseIf i = 7 Then 

    myColorFormat(i).RGB = getRGB1(Cells(12, 12)) 

    ElseIf i = 8 Then 

    myColorFormat(i).RGB = getRGB1(Cells(12, 13)) 

    ElseIf i = 9 Then 

    myColorFormat(i).RGB = getRGB1(Cells(12, 14)) 

    ElseIf i = 10 Then 

    myColorFormat(i).RGB = getRGB1(Cells(12, 15)) 

    End If 




Next i 



End Sub 

Function getRGB1(rcell) As String 
    Dim sColor As String 

    sColor = Right("000000" & Hex(rcell.Interior.Color), 6) 
    getRGB1 = Right(sColor, 2) & Mid(sColor, 3, 2) & Left(sColor, 2) 
End Function 
+0

類型不匹配*,其中*? –

+0

由於'getRGB1'返回一個像'FFFFFF'這樣的字符串,而'.RGB'則期待像'RGB(0,128,0)' –

+0

這樣的字符串,所以你會得到'type mismatch'錯誤。 //stackoverflow.com/questions/24132665/return-rgb-values-from-range-interior-color-or-any-other-color-property)如何檢索這些值。 –

回答

0

設置每個單元格的顏色範圍G12:R12

Option Explicit 

Sub UpdateChart() 
    Dim myChart As Chart 

    Set myChart = ActiveSheet.ChartObjects(1) 
    For i = 1 To 10 
     With myChart.SeriesCollection(1) 
      .Points(i).Format.Fill.ForeColor.RGB = Cells(12, i + 6).Interior.Color 
     End With 
    End Sub 
End Sub 
+0

YEEEEESSSS GOD祝福你的靈魂 –