Я понимаю, что это немного поздно, но это сработало для меня;
При создании вашего текстового приложения создайте временный объект Word, сначала откройте его, а затем откройте нужный документ Word ... затем закройте временный файл.
Может показаться, что он тратит пространство и память, но при этом он гарантирует, что созданный файл winword.exe будет работать самостоятельно, а вновь созданные документы Word не будут подключатьсяyours.
Private sub OpenWord()
Dim MyWord as Object
Dim MyTempWord as Object
//I use the CreateObject in my application, but this will be however
//you declare your word application
MyTempWord = CreateObject("Word.Application")
MyWord = CreateObject("Word.Application")
MyTempWord.Quit(SaveChanges:=0)
//*Carry on doing whatever your app does*
//*After Finishing App stuff Close it...*
If MyWord IsNot Nothing Then
MyWord.Quit(SaveChanges:=0)
Marshal.FinalReleaseComObject(MyWord)
End If
End Sub
Чтобы воспроизвести эту проблему, мне пришлось открыть слово в моем приложении, а затем открыть отдельное слово с помощью ярлыка (Microsoft Office Word).Когда мое приложение вызывало MyWord.Quit (), оно закрывало оба экземпляра документа.Проблема заключается в том, что вновь созданный документ подключается к WINWORD.EXE, который создает ваше приложение, поэтому при закрытии приложения оно закрывает другой документ (даже если они появляются в разных экземплярах).
Мне потребовалосьдолго исправлять, и я надеюсь, что это поможет другим!