Wo ist der Remote-Server-Computer
In einem Programm, das ich in VBA geschrieben habe, erscheint manchmal die Fehlermeldung: Der Remote-Server-Computer existiert nicht oder ist nicht verfügbar. Wo bitte steht denn mein Remote-Server-Computer?
Diese Meldung kann zwei Ursachen haben. Entweder Sie greifen mit einer Objektvariablen auf ein anderes Programm (beispielsweise Word oder Access) zu und schließen per Hand (oder per Programmierung) dieses Programm.
Oder Sie greifen auf ein anderes Programm zu und löschen nicht „sauber“ die Objektvariablen. Auch wenn Microsoft behauptet, dass eine Garbage-Collection die Variablen „sauber“ putzen würde, stelle ich ab und zu (nicht immer!) fest, dass dies nicht der Fall ist. Also, wenn Sie beispielsweise per Programmierung Word öffnen (Sie müssen natürlich einen Verweis auf die Word-Bibliothek setzen):
Dim wdApp As Word.Application
Dim wdDatei As Word.Document
Set wdApp = New Word.Application
wdApp.Visible = True
Set wdDatei = wdApp.Documents.Add
Dann sollten Sie am Ende sämtliche Objektvaribalen leeren. Und zwar so.
Set wdDatei = Nothing
Set wdApp = Nothing
Und bitte auch in der richtigen Reihenfolge – von „klein“ nach „groß“.
Bei mir trat der Fehler immer beim zweiten Aufruf auf, solange ich im VBA von Excel eine Word – Funktion wie „CentimetersToPoints“ mit „call Word.CentimetersToPoints(..)“ aufgerufen habe. Mit dem Umstellen auf „pRange.Application.CentimetersToPoints(…)“ war das verschwunden.
Meine Vermutung ist, dass Excel die globale Word Namespace-Variable beim zweiten Start wieder verwendet, obwohl ich bei jedem Lauf eine neue Word Instanz gestartet habe. Das hat Word. aber nicht mitbekommen (und zu diesem Zeitpunkt war diese Word Instanz auch schon wieder geschlossen.)
Interessant. Man kann den Fehler also umschiffen, aber merkwürdig bleibt er trotzdem, oder?