Strange macro behavior - result is correct every other time

  • Thread starter Thread starter Andrew
  • Start date Start date
A

Andrew

Hello,
I am stumped. I have a large VBA program with about 8 subroutines and
maybe 50-70 variables. The program itself is too complicated to
explain, however as a gross approximation, it works about like this:

Private Sub Main_Clicl()
for x = 1 to 1000
if x^2+10x+25 = 100 then
exit sub
next
cells(1,1)=x
End Sub

So, the program would search for an answer. Anyway, let's just say
that for this example, when I click on a button on the screen, I get
an answer in cells(1,1). So, I click it one time and I get the
correct answer; I click a second time and I get an incorrect answer.
I click again, and I get the right answer. And this pattern
continues.

I am not using any static variables. All my variables are global.
Can someone please explain what might be happening.

thanks
 
Hi Andrew,

Can only offer a suggestion. Impossible to answer without interrogating your
code.

How does the answer get found. Are you using find and if so have you got the
After parameter set to active cell then activating a cell at the end of the
find and the second click of your button is finding a second after the first
occurrence.

It above is the reason then post the bit of code with the find and it can be
fixed. Generally if you want to find the first occurrence then the After
parameter should point to the last cell of the range being searched.
 
Maybe a better example might help. The code you posted wouldn't give an
"answer": did you mean "exit for" and not "exit sub" ?

Since the code you have is too complex to explain, can you reduce it to a
smaller version which has the same problem ? Without that it's unlikely
anyone could guess the cause of your problem.

You specifically mention that you're not using static variables, but you
*are* using global variables, which wouldn't lose their values without
resetting the environment with "Stop" or some other method. Why don't you
suspect your globals ?

Tim
 
Maybe a better example might help.  The code you posted wouldn't give an
"answer": did you mean "exit for" and not "exit sub" ?

Since the code you have is too complex to explain, can you reduce it to a
smaller version which has the same problem ?  Without that it's unlikely
anyone could guess the cause of your problem.

You specifically mention that you're not using static variables, but you
*are* using global variables, which wouldn't lose their values without
resetting the environment with "Stop" or some other method.  Why don't you
suspect your globals ?

Tim

Guys,
I wish I could submit the code, but I have 8 subroutines and several
hundred lines of code. I have run some output tests to verify that my
variables are all 0 prior to the function calls. I don't think there
is an easy answer here. I will have to dig line by line to find the
culprit.
 

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

Back
Top