I can avoid the hassle by using the following function when I need to use Mid. It wraps around native Visual Basic functionality and handles this common error case.
public Function FlexiMid(From as string, Start as Long, _ optional Length as Long = -1) as string If Start < 1 then Start = 1 FlexiMid = IIf(Length = -1, mid$(From, Start), _ mid$(From, Start, Length)) End Function
Once you've pasted this function into your program (I recommend a module, so that you can access it from anywhere), you can use it just as you would Mid. In fact, once I wrote this, I ran a search and replace on my project to start using it.