Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default Help with silly error

I have a really silly error which is killing me !

When I pass a filled array to a function, it loses all its content once
inside the function, as follows:

*** START CODE SNIPPET

Option Base 1

Sub MyRoutine

ReDim MyArray(3) As Variant

For x = 1 To 3
MyArray(x) = x
Next x

a = bAllFiguresUnique(MyArray()) '<== UBOUND HERE IS 3

End Sub

Function bAllFiguresUnique(ParamArray MyArray() As Variant) As Boolean

bAllFiguresUnique = True

For x = 1 To UBound(MyArray()) '<== UBOUND HERE IS 0
DoEvents
For y = 1 To UBound(MyArray())
DoEvents
If MyArray(x) = MyArray(y) Then
If x = y Then
'Ignore
Else
bAllFiguresUnique = False
Exit Function
End If
End If
Next y
Next x

End Function

*** END CODE SNIPPET

I must be doing something stupid, but I can't work out what !

Thanks in advance for all constructive suggestions.

Nick

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Help with silly error

This works for me

Sub MyRoutine()

ReDim MyArray(3) As Variant

For x = 1 To 3
MyArray(x) = x
Next x

a = bAllFiguresUnique(MyArray)

End Sub

Function bAllFiguresUnique(MyArray As Variant) As Boolean

bAllFiguresUnique = True

For x = 1 To UBound(MyArray)
DoEvents
For y = 1 To UBound(MyArray)
DoEvents
If MyArray(x) = MyArray(y) Then
If x = y Then
'Ignore
Else
bAllFiguresUnique = False
Exit Function
End If
End If
Next y
Next x

End Function

--

HTH

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


wrote in message
ups.com...
I have a really silly error which is killing me !

When I pass a filled array to a function, it loses all its content once
inside the function, as follows:

*** START CODE SNIPPET

Option Base 1

Sub MyRoutine

ReDim MyArray(3) As Variant

For x = 1 To 3
MyArray(x) = x
Next x

a = bAllFiguresUnique(MyArray()) '<== UBOUND HERE IS 3

End Sub

Function bAllFiguresUnique(ParamArray MyArray() As Variant) As Boolean

bAllFiguresUnique = True

For x = 1 To UBound(MyArray()) '<== UBOUND HERE IS 0
DoEvents
For y = 1 To UBound(MyArray())
DoEvents
If MyArray(x) = MyArray(y) Then
If x = y Then
'Ignore
Else
bAllFiguresUnique = False
Exit Function
End If
End If
Next y
Next x

End Function

*** END CODE SNIPPET

I must be doing something stupid, but I can't work out what !

Thanks in advance for all constructive suggestions.

Nick



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Help with silly error

Not sure why you want to use a parameter array, but if you do and this is a
simplified example, then this works:

Option Base 1

Sub MyRoutine()

ReDim MyArray(3) As Variant

For x = 1 To 3
MyArray(x) = x
Next x

a = bAllFiguresUnique(MyArray()) '<== UBOUND HERE IS 3
Debug.Print a
End Sub

Function bAllFiguresUnique(ParamArray MyArray() As Variant) As Boolean

bAllFiguresUnique = True
Debug.Print UBound(MyArray(0)) '<== UBOUND HERE IS 3
For x = 1 To UBound(MyArray(0))
DoEvents
For y = 1 To UBound(MyArray(0))
DoEvents
If MyArray(0)(x) = MyArray(0)(y) Then
If x = y Then
'Ignore
Else
bAllFiguresUnique = False
Exit Function
End If
End If
Next y
Next x

End Function



--
Regards,
Tom Ogilvy

wrote in message
ups.com...
I have a really silly error which is killing me !

When I pass a filled array to a function, it loses all its content once
inside the function, as follows:

*** START CODE SNIPPET

Option Base 1

Sub MyRoutine

ReDim MyArray(3) As Variant

For x = 1 To 3
MyArray(x) = x
Next x

a = bAllFiguresUnique(MyArray()) '<== UBOUND HERE IS 3

End Sub

Function bAllFiguresUnique(ParamArray MyArray() As Variant) As Boolean

bAllFiguresUnique = True

For x = 1 To UBound(MyArray()) '<== UBOUND HERE IS 0
DoEvents
For y = 1 To UBound(MyArray())
DoEvents
If MyArray(x) = MyArray(y) Then
If x = y Then
'Ignore
Else
bAllFiguresUnique = False
Exit Function
End If
End If
Next y
Next x

End Function

*** END CODE SNIPPET

I must be doing something stupid, but I can't work out what !

Thanks in advance for all constructive suggestions.

Nick



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Help with silly error

From his code, I assumed he didn't realy undedrstand how to use arrays, and
thus ParamArray was a mistake , after all it does say array<g

Bob


"Tom Ogilvy" wrote in message
...
Not sure why you want to use a parameter array, but if you do and this is

a
simplified example, then this works:

Option Base 1

Sub MyRoutine()

ReDim MyArray(3) As Variant

For x = 1 To 3
MyArray(x) = x
Next x

a = bAllFiguresUnique(MyArray()) '<== UBOUND HERE IS 3
Debug.Print a
End Sub

Function bAllFiguresUnique(ParamArray MyArray() As Variant) As Boolean

bAllFiguresUnique = True
Debug.Print UBound(MyArray(0)) '<== UBOUND HERE IS 3
For x = 1 To UBound(MyArray(0))
DoEvents
For y = 1 To UBound(MyArray(0))
DoEvents
If MyArray(0)(x) = MyArray(0)(y) Then
If x = y Then
'Ignore
Else
bAllFiguresUnique = False
Exit Function
End If
End If
Next y
Next x

End Function



--
Regards,
Tom Ogilvy

wrote in message
ups.com...
I have a really silly error which is killing me !

When I pass a filled array to a function, it loses all its content once
inside the function, as follows:

*** START CODE SNIPPET

Option Base 1

Sub MyRoutine

ReDim MyArray(3) As Variant

For x = 1 To 3
MyArray(x) = x
Next x

a = bAllFiguresUnique(MyArray()) '<== UBOUND HERE IS 3

End Sub

Function bAllFiguresUnique(ParamArray MyArray() As Variant) As Boolean

bAllFiguresUnique = True

For x = 1 To UBound(MyArray()) '<== UBOUND HERE IS 0
DoEvents
For y = 1 To UBound(MyArray())
DoEvents
If MyArray(x) = MyArray(y) Then
If x = y Then
'Ignore
Else
bAllFiguresUnique = False
Exit Function
End If
End If
Next y
Next x

End Function

*** END CODE SNIPPET

I must be doing something stupid, but I can't work out what !

Thanks in advance for all constructive suggestions.

Nick





  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Help with silly error

That would certainly be the more likely scenario and if that is the case,
then the OP probably won't understand my example anyway.

In any event, both contingencies have been covered. Perhaps someone will
think up a third.

--
Regards,
Tom Ogilvy

"Bob Phillips" wrote in message
...
From his code, I assumed he didn't realy undedrstand how to use arrays,

and
thus ParamArray was a mistake , after all it does say array<g

Bob


"Tom Ogilvy" wrote in message
...
Not sure why you want to use a parameter array, but if you do and this

is
a
simplified example, then this works:

Option Base 1

Sub MyRoutine()

ReDim MyArray(3) As Variant

For x = 1 To 3
MyArray(x) = x
Next x

a = bAllFiguresUnique(MyArray()) '<== UBOUND HERE IS 3
Debug.Print a
End Sub

Function bAllFiguresUnique(ParamArray MyArray() As Variant) As Boolean

bAllFiguresUnique = True
Debug.Print UBound(MyArray(0)) '<== UBOUND HERE IS 3
For x = 1 To UBound(MyArray(0))
DoEvents
For y = 1 To UBound(MyArray(0))
DoEvents
If MyArray(0)(x) = MyArray(0)(y) Then
If x = y Then
'Ignore
Else
bAllFiguresUnique = False
Exit Function
End If
End If
Next y
Next x

End Function



--
Regards,
Tom Ogilvy

wrote in message
ups.com...
I have a really silly error which is killing me !

When I pass a filled array to a function, it loses all its content

once
inside the function, as follows:

*** START CODE SNIPPET

Option Base 1

Sub MyRoutine

ReDim MyArray(3) As Variant

For x = 1 To 3
MyArray(x) = x
Next x

a = bAllFiguresUnique(MyArray()) '<== UBOUND HERE IS 3

End Sub

Function bAllFiguresUnique(ParamArray MyArray() As Variant) As Boolean

bAllFiguresUnique = True

For x = 1 To UBound(MyArray()) '<== UBOUND HERE IS 0
DoEvents
For y = 1 To UBound(MyArray())
DoEvents
If MyArray(x) = MyArray(y) Then
If x = y Then
'Ignore
Else
bAllFiguresUnique = False
Exit Function
End If
End If
Next y
Next x

End Function

*** END CODE SNIPPET

I must be doing something stupid, but I can't work out what !

Thanks in advance for all constructive suggestions.

Nick







Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Silly question Darrell_Sarrasin via OfficeKB.com Excel Worksheet Functions 6 May 11th 07 01:08 PM
This is so silly... jsc3489 Excel Worksheet Functions 3 November 10th 05 02:06 PM
Silly little annoyance Setting up and Configuration of Excel 6 December 22nd 04 09:33 PM
Silly I know Terry Klein Excel Programming 4 January 15th 04 11:35 PM
Silly Question Mick Southam Excel Programming 4 January 6th 04 09:32 PM


All times are GMT +1. The time now is 06:11 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"