在Visual Basic中引用工作表

我正在为一个工作项目工作,并试图在条形图内彩条。 多个工作表具有不同的图表,但他们都遵循相同的配色scheme。 我对VB非常陌生(前两天刚刚提到),我有可能是一个基本的问题,但我无法find答案的任何地方。 我有一个单独的函数来为每个图表着色,但我想浓缩我的代码,使它们引用一个函数。 以下是我的一个例子:

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 

这是我想用来引用所有图表的代码。 但是,我得到了其他的错误,因为工作表名称是不是所有的“图表”。 如何更改此代码,以便多个工作表可以调用此函数? 有没有办法改变工作表而不明确使用它的名字?

“表格”属性只是工作表项的集合,因此可以通过特定名称或其序号来引用,如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