我正在研究一个工作项目,我正在尝试在条形图中着色条。制作了具有不同图表的多个工作表,但它们都遵循相同的颜色方案。我是VB的新手(刚刚在2天前拿起它)我有可能是一个基本的问题,但我无法在任何地方找到答案。我有一个单独的功能来为每个图表着色,但我想压缩我的代码,使它们引用一个函数。这是我的一个例子:
Private Sub color_chart()
Dim chartIterator As Integer, pointIterator As Integer, _
seriesArray() As Variant
For chartIterator = 1 To ActiveSheet.ChartObjects.Count
seriesArray = ActiveWorkbook.Sheets("Chart").ChartObjects(chartIterator). _
Chart.SeriesCollection(1).Values
For pointIterator = 1 To UBound(seriesArray)
' ***** If percent is greater than or equal to 90, color is green. *****
If seriesArray(pointIterator) >= 0.9 Then
ActiveWorkbook.Sheets("Chart").ChartObjects(chartIterator). _
Chart.SeriesCollection(1).Points(pointIterator).Interior.Color = _
RGB(0, 153, 0)
' ***** If percent is greater than or equal to 50, color is yellow. *****
ElseIf seriesArray(pointIterator) >= 0.5 Then
ActiveWorkbook.Sheets("Chart").ChartObjects(chartIterator). _
Chart.SeriesCollection(1).Points(pointIterator).Interior.Color = _
RGB(239, 226, 42)
' ***** If percent is less than 50, color is red *****
Else
ActiveWorkbook.Sheets("Chart").ChartObjects(chartIterator). _
Chart.SeriesCollection(1).Points(pointIterator).Interior.Color = _
RGB(229, 41, 41)
End If
Next pointIterator
Next chartIterator
End Sub
这是我想用来引用所有图表的代码。但是我得到了其他的错误,因为工作表名称不是所有这些的“图表”。如何更改此代码以便多个工作表可以调用此函数?有没有办法在不明确使用其名称的情况下对工作表进行更改?
答案 0 :(得分:0)
“表格”属性只是工作表项的集合,因此可以通过特定名称或其序号引用,例如ActiveWorkbook.Sheets(0).Chartobjects
https://msdn.microsoft.com/en-us/library/office/ff822101.aspx
编辑以扩展您的案例,因为您说您最近刚刚使用了VB:
使用For Each迭代工作表集合,例如:
For Each wsheet As WorkSheet in ActiveWorkbook.Sheets
wsheet.ChartObjects(chartIterator). _
Chart.SeriesCollection(1).Points(pointIterator).Interior.Color = _
RGB(239, 226, 42)
Next