Thanks Abulafia,
The only errors I encountered were when the last field(s) were blank, which resulted in the Mid not working. I just added an On Error Resume Next to it to skip those errors. The rest of it worked fine. I appreciate the error checking though, should come in handy for the future. I'll probably still just run this directly in a regular module, not sure why it's a function and not a sub. Runs fine either way though.
Any idea what I have to do to close this message?