Error after last object in the array when looping For...each

G

Gunnar Johansson

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
 
B

Bob Phillips

Gunnar,

Using your code I did a very quick test and I didn't get any problems. You
certainly don't have to tell VBA how many objects there are, that is the
point of For Each ... Next. You must have some other code that is affecting
it, or something about one of those chart objects.

--

HTH

RP
(remove nothere from the email address if mailing direct)
 
G

Guest

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.
 
G

Gunnar Johansson

Thanks for the help,

Now I know that the error isn't into this part of the code.
/regards
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top