ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Weird Behaviour Function not invoked (https://www.excelbanter.com/excel-programming/422175-weird-behaviour-function-not-invoked.html)

sharon

Weird Behaviour Function not invoked
 
I see a weird behaviour in VBA code, not always but from time to time.
I've seen this in more than one workbook, so I'd like to know how to fix it.

Having (line numbers are just for explanation purposes)
001 For each cel in range("rTotal")
002 cel.offset(0,2)="x"
003 Next
.....
.....
100 Function anYthing( xLOL as string) as string
101 Application.Volatile True
102 Sheets("STAT").Select
103 Range("lVAL").Select
104 Sw = Sw + 1
105 If Sw 250 Then
106 MsgBox ("Times: " + Str(Sw))
107 End If
108 anYthing="anything"
109 Function End


While normal flow would be looping through steps 1 -2 -3 some times I can
see (while debugging) that flow is 1 - 2 - and looping (several times) steps
103 104 - 100, which is a function actually not invoked.
Eventually it goes back to 3-2-1

Any clue?

Sharon

JLGWhiz

Weird Behaviour Function not invoked
 
I have noticed similar behavior when debugging. Although I could not
immediately see a reason, I have come to believe that it is a logic protocol
built into VBA that, in certain circumstances, VBA will check to see if there
is another part of the code that needs to do things like recalculate, run a
before event code, etc. It is the only explanation I could come up with.

"sharon" wrote:

I see a weird behaviour in VBA code, not always but from time to time.
I've seen this in more than one workbook, so I'd like to know how to fix it.

Having (line numbers are just for explanation purposes)
001 For each cel in range("rTotal")
002 cel.offset(0,2)="x"
003 Next
....
....
100 Function anYthing( xLOL as string) as string
101 Application.Volatile True
102 Sheets("STAT").Select
103 Range("lVAL").Select
104 Sw = Sw + 1
105 If Sw 250 Then
106 MsgBox ("Times: " + Str(Sw))
107 End If
108 anYthing="anything"
109 Function End


While normal flow would be looping through steps 1 -2 -3 some times I can
see (while debugging) that flow is 1 - 2 - and looping (several times) steps
103 104 - 100, which is a function actually not invoked.
Eventually it goes back to 3-2-1

Any clue?

Sharon


sharon

Weird Behaviour Function not invoked
 
So far, is any MVP who could put some light on this issue?

Sharon

"JLGWhiz" wrote:

I have noticed similar behavior when debugging. Although I could not
immediately see a reason, I have come to believe that it is a logic protocol
built into VBA that, in certain circumstances, VBA will check to see if there
is another part of the code that needs to do things like recalculate, run a
before event code, etc. It is the only explanation I could come up with.

"sharon" wrote:

I see a weird behaviour in VBA code, not always but from time to time.
I've seen this in more than one workbook, so I'd like to know how to fix it.

Having (line numbers are just for explanation purposes)
001 For each cel in range("rTotal")
002 cel.offset(0,2)="x"
003 Next
....
....
100 Function anYthing( xLOL as string) as string
101 Application.Volatile True
102 Sheets("STAT").Select
103 Range("lVAL").Select
104 Sw = Sw + 1
105 If Sw 250 Then
106 MsgBox ("Times: " + Str(Sw))
107 End If
108 anYthing="anything"
109 Function End


While normal flow would be looping through steps 1 -2 -3 some times I can
see (while debugging) that flow is 1 - 2 - and looping (several times) steps
103 104 - 100, which is a function actually not invoked.
Eventually it goes back to 3-2-1

Any clue?

Sharon


sharon

Weird Behaviour Function not invoked
 
So far, is any MVP or regular user who could put some light on this issue?

A simple strX=Cel causes a weird jump to the un-invoked Function, doing just
3 steps on it (several times) and exiting after doing a sentence like
Range("F2").Select when there are 50 sentences after this one and before the
End Function

????

TIA,

Sharon


"JLGWhiz" wrote:

I have noticed similar behavior when debugging. Although I could not
immediately see a reason, I have come to believe that it is a logic protocol
built into VBA that, in certain circumstances, VBA will check to see if there
is another part of the code that needs to do things like recalculate, run a
before event code, etc. It is the only explanation I could come up with.

"sharon" wrote:

I see a weird behaviour in VBA code, not always but from time to time.
I've seen this in more than one workbook, so I'd like to know how to fix it.

Having (line numbers are just for explanation purposes)
001 For each cel in range("rTotal")
002 cel.offset(0,2)="x"
003 Next
....
....
100 Function anYthing( xLOL as string) as string
101 Application.Volatile True
102 Sheets("STAT").Select
103 Range("lVAL").Select
104 Sw = Sw + 1
105 If Sw 250 Then
106 MsgBox ("Times: " + Str(Sw))
107 End If
108 anYthing="anything"
109 Function End


While normal flow would be looping through steps 1 -2 -3 some times I can
see (while debugging) that flow is 1 - 2 - and looping (several times) steps
103 104 - 100, which is a function actually not invoked.
Eventually it goes back to 3-2-1

Any clue?

Sharon



All times are GMT +1. The time now is 04:59 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com