View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
AA2e72E AA2e72E is offline
external usenet poster
 
Posts: 400
Default Error after last object in the array when looping For...each

A chart can appear in a worksheet or in a chart sheet. So you have:

ActiveWorkbook.Charts ' in chart sheets
activeworkbook.activesheet.chartobjects ' charts in worksheets.

I suspect that one or more of your charts are in a chart sheet.
"Gunnar Johansson" wrote:

Hi,
I have named chartobjects grouped as an array "arGrp21" and when I run the
"For each chtobj..." the loop works ok until the last, "R_Q_F_21", is done.
After "R_Q_F_21" I get error with the line "Next" . Does I have to tell how
many chartobjects there is? How? Else: What is the error with my code?

/Regards

Code Simplified:

Sub ArrayList
Dim arGrp21() As Variant

arGrp21 = Array("R_CF_FB_21", "R_ROI_FB_21", "R_Q_FB_21", "R_CF_FBA_21",
"R_ROI_FBA_21", "R_Q_FBA_21", "R_CF_F_21", "R_ROI_F_21", "R_Q_F_21")

Call RestoreFontsEtc(arGrp21)
End sub


Sub RestoreFontsEtc(arCht As Variant)
Dim chtobj As ChartObject
For Each chtobj In Sheet1.ChartObjects(arCht)
chtobj.Height = 300
chtobj.Width = 450
Next
End Sub