我已經修改了一段代碼,用於根據可以着色的工作簿中的單元對幾個餅圖(以及它們中的切片)着色。下標超出範圍(運行時錯誤9)
Sub SetColorScheme(cht As Chart, i As Long)
Dim y_off As Long, rngColors As Range
Dim x As Long
y_off = i Mod 10
'this is the range of cells which has the colors you want to apply
Set rngColors = ThisWorkbook.Sheets("colors").Range("A1:C1").Offset(y_off, 0)
With cht.SeriesCollection(1)
'loop though the points and apply the corresponding fill color from the cell
For x = 1 To .Points.Count
.Points(x).Format.Fill.ForeColor.RGB = _
rngColors.Cells(x).Interior.Color
Next x
End With
End Sub
問題是,當我嘗試編譯該段時,出現錯誤Subscript超出範圍(運行時錯誤9)。有人有什麼建議可能導致這種行爲? 我總共有8個餅圖,所以我也嘗試輸入我的Mod 8,而不是Mod 10,這並沒有改變錯誤。在連接其他子(其生成餅狀圖(因爲這種子僅着色他們的作品呢?)中的錯誤可能soembody作出任何建議?
我相信@Joe已經回答了您的問題。現在從一個不同的角度來看這個'當我嘗試編譯這個代碼片段時.'並且'是與另一個代碼塊相關的錯誤:編譯和執行代碼是有區別的。如果你正在使用'Debug ~~> Compile VBA Project'(COMPILING)並且你遇到錯誤,那麼是的,這個錯誤可能在其他地方。 Contd ... –
如果您正在執行代碼(通過按F5或運行菜單),那麼您需要檢查哪條線路會給出錯誤。 VBA編譯與其他計算機語言編譯之間的主要區別在於,對於任何新編譯,編譯後都不會生成獨立的EXE或DLL文件。 –
我應該提到,錯誤是在行Set rngColors = ThisWorkbook.Sheets(「colors」)。Range(「A1:C1」)。Offset(y_off,0)你可以看看我的評論下面回答)。我真的不知道是什麼騙取錯誤 –