Undoubtedly by using activedocument rather than the document names you have applied, the code is losing track of which document is which. The folllowing should address it:
Code:
Option Explicit
Private Sub cmdSpellCheck_Click()
DoSpellCheck TextBox1
MsgBox "Spelling and Grammar Check Complete"
lbl_Exit:
Exit Sub
End Sub
Public Sub DoSpellCheck(oTxtBox As Control)
Dim oDoc2 As Document
Dim oRng As Range
Set oDoc2 = Documents.Add
With oTxtBox
If Not .value = "" And Not .value = "<WhatEver>" Then
Set oRng = oDoc2.Range
oRng = .value
With oRng
.SpellingChecked = False
.CheckSpelling AlwaysSuggest:=True
.CheckGrammar
.End = .End - 1
End With
'Return data to the Userform
.value = oRng.Text
oDoc2.Close SaveChanges:=wdDoNotSaveChanges
End If
End With
Set oDoc2 = Nothing
Exit Sub
End Sub