Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Error after last object in the array when looping For...each
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 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Error after last object in the array when looping For...each
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) "Gunnar Johansson" wrote in message ... 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 |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Error after last object in the array when looping For...each
Thanks for the help,
Now I know that the error isn't into this part of the code. /regards "Bob Phillips" skrev i meddelandet ... 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) "Gunnar Johansson" wrote in message ... 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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
How to write an array to a range without looping | Excel Worksheet Functions | |||
Looping through Sheets and passing values to an Array | Excel Programming | |||
Range object to Array object conversion | Excel Programming | |||
Range object to Array object conversion | Excel Programming | |||
Range object to Array object conversion | Excel Programming |