This has been happening increasingly, when I have a sheets.add or sheets.delete in excel VBA. After searching and searching I finally found the official Microsoft support page on it. My question is, does anyone know why I could have stepped through this code just fine over and over, and then all of a sudden it starts doing what Microsoft says it would always do, and is there a way to fix it?
Sub foo() Sheets.add debug.print "sheet added" 'breakpoint here End sub
It's as simple as that. You won't be able to recreate it, because the issue I'm asking about is the fact that it doesn't happen at first. It works just fine over and over then randomly presents the error described in the linked Microsoft support page.
Here are a few suggestions which are not fool-proof,
Firstly, verify that the error does not occur if a breakpoint is not set.
If it doesn't, try a few other things:
- From the VBE Debug menu, "Compile VBA Project", it's worth a shot.
- Delete the line entirely. Run the code. Then put the line back in and try again with the breakpoint.
- Add a
DoEvents
statement after the Sheets.Add
- Use a
MsgBox
instead of a breakpoint on a Debug.Print
. With the message box displayed, attempt to manually break using ctrl+fn+End. (At this point, "breaking" isn't necessary but it would be interesting to see whether you can break this way) - Put a breakpoint on
Sheets.Add
instead; practically speaking, there's no reason to put the breakpoint on a Print
statement if you can just put it on the preceding line. - Are there any Addins? If so, disable all of them and re-enable one at a time, testing to see which one may contribute to the error.