vba outcome

H

harry buggy

can anyone tell me if theres any errors in this and what the outcome
would be?

sub test ()

dim I, J As Integer
dim x as single
for i = 1 to length
for j = 1 to (length - i)
If A(j) < A )j +1) Then
x = a(j +1) = A(j)
A(j) = x
end if
next j
next i
end sub
 
B

Bob Phillips

Test it!

--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)
 
B

bj

several things

where is length defined?

I would do it as
for i = 2 to length
(by going from 1 to length you have the j going from one to zero the first
iteration, whch it wont do

If A(j) < A )j +1) Then
needs to be
If A(j) < A (j +1) Then

x = a(j +1) = A(j)
needs to be
x=A(j+1)
A(J+1)=A(J)
 
P

Pete_UK

1. You haven't defined what length is, nor the array A.
2. You mix upper and lower case i and j.
3. On your 7th line you have a closed bracket before the j+1 term -
should be open bracket.
4. Your 8th line does not make sense.

As for the outcome, are you trying to do a crude bubble sort?

Hope this helps.

Pete
 
D

David Biddulph

Yes there are errors.

You can try proof-reading your macro, and/or you can try to run it and see
what errors it tells you about.
 
R

Rick Rothstein \(MVP - VB\)

can anyone tell me if theres any errors in this...
sub test ()

dim I, J As Integer

The above statement only declares the variable J as an Integer; the variable
I will be declared as a Variant. In VBA, you must declare each variable's
type individually. So, you could write the above this way...

Dim I As Integer, J As Integer

or this way (your choice)....

Dim I As Integer
Dim J As Integer

My personal preference is for the latter, but that is only a personal
preference.

Rick
 
Top