下面的代碼作業并使用 rgb 的三個值設定四行的顏色。三個 rgb 值填充在一個不是很清楚的陣列 ( Clr ) 中。通過使用Hex數字、ColorIndex或預定義顏色(如vbBlack ),是否有另一種即時替代方法?
Sub CreateChart()
Dim i As Long
Dim j As Long
Dim Clr() As Variant
'Clr = Array("vbBlack", "vbBlue", "vbRed", "vbCyan", "vbGreen", "vbMagenta") ' colors as types
'Clr = Array("&H0", "&HFF0000", "&Hff", "&HFFFF00", "&HFF00", "&HFF00FF") ' Hex of colors as String
'Clr = Array(&H0, &HFF0000, &HFF, &HFFFF00, &HFF00, &HFF00FF) ' Hex Values of colors
'Clr = Array(&H0, &HFF0000, &HFF, &HFFFF00, &HFF00, &HFF00FF) ' IndexColor
Clr = Array(0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 255, 255, 0, 255, 0, 255, 0, 255)
With Charts.Add
.ChartType = xlXYScatterLinesNoMarkers
.SetSourceData Source:=Sheets("Plot").Range("A12:E213")
j = 0
For i = 2 To 5
With .FullSeriesCollection(i - 1).Format.Line
.ForeColor.RGB = RGB(Clr(j), Clr(j 1), Clr(j 2))
j = j 3
End With
Next
End With
End Sub
uj5u.com熱心網友回復:
實際上,您的代碼運行良好,只需去掉引號和RGB函式。十六進制值也沒有錯,它們作業正常。
Sub CreateChart()
Dim Color As Variant
Dim Source as Range
Dim i As Long
Set Source = Sheets("Plot").Range("A12:E213")
Color = Array(vbBlack, vbBlue, vbRed, vbCyan, vbGreen, vbMagenta)
' Array(&H0, &HFF0000, &HFF, &HFFFF00, &HFF00, &HFF00FF) works as well
With Charts.Add
.ChartType = xlXYScatterLinesNoMarkers
.SetSourceData Source
For i = 1 To .FullSeriesCollection.Count
.FullSeriesCollection(i).Format.Line.ForeColor.RGB = Color(i - 1)
Next i
End With
End Sub
為了使用Color(i)而不是有些笨拙Color(i - 1),我們應該默認添加從一個Option Base 1開始Array索引。但這當然取決于你。
PS看看xlRGBColor列舉
uj5u.com熱心網友回復:
使用Hex2Dec() WorkSheetFunction 嗎?
Sub CreateChart()
Dim i As Long
Dim j As Long
Dim Clr() As Variant
'Clr = Array("vbBlack", "vbBlue", "vbRed", "vbCyan", "vbGreen", "vbMagenta") ' colors as types
'Clr = Array("&H0", "&HFF0000", "&Hff", "&HFFFF00", "&HFF00", "&HFF00FF") ' Hex of colors as String
Clr = Array(&H0, &HFF0000, &HFF, &HFFFF00, &HFF00, &HFF00FF) ' Hex Values of colors
'Clr = Array(&H0, &HFF0000, &HFF, &HFFFF00, &HFF00, &HFF00FF) ' IndexColor
'Clr = Array(0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 255, 255, 0, 255, 0, 255, 0, 255)
With Charts.Add
.ChartType = xlXYScatterLinesNoMarkers
.SetSourceData Source:=Sheets("Plot").Range("A12:E213")
j = 0
For i = 2 To 5
With .FullSeriesCollection(i - 1).Format.Line
.ForeColor.RGB = WorksheetFunction.Hex2Dec(Clr(j))
j = j 1
End With
Next i
End With
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/470579.html
上一篇:檢查宏是否使用VBA運行
