Öffnen/Aktivieren der Word-Dokumente in einem VBA-makro

Ich hoffe, ein VB - /VBA-Experten können mir helfen. Betrachten Sie die folgenden:
Der Benutzer öffnet ein Dokument in Word 2003, und innerhalb der Normalen.dot AutoOpen makro, schauen wir uns aktuelle Dokument, und wenn es geöffnet wurde, indem Sie auf einen link auf einer Webseite, und erfüllt bestimmte andere Anwendung, die bestimmte Kriterien erfüllen, schließen Sie die gestreamt "Kopie" und öffnen Sie das Quell-Dokument (zu finden auf einem freigegebenen Laufwerk können wir davon ausgehen, der Benutzer hat Zugriff auf):

Documents.Open origDoc
Documents(ActiveDocument.FullName).Close SaveChanges:=wdDoNotSaveChanges
Documents(origDoc).Activate

With ActiveDocument
    ''# Do work
End With

Mein Gedanke war, dass ich brauchte, um Anruf Activate um sicherzustellen, dass das ursprüngliche Dokument war die ActiveDocument, aber ich bin immer 4160 'Ungültiger Dateiname" - Fehler auf der .Activate nennen. Wenn ich kommentieren Sie den Aufruf von .Activate scheint es, dass ActiveDocument eingestellt ist, um die origDoc Dokument, auch wenn es andere Dokumente, die bereits geöffnet wurde (ich bin mir nicht wirklich sicher, wie die Documents-Auflistung verwaltet wird, und wie Word bestimmt, was als Nächstes ActiveDocument wäre, wenn Sie ein Programm schließen des aktuellen ActiveDocument)

So, hat Berufung .Open auf ein Dokument, das explizit den Dokument werden die ActiveDocument? Auch, hat den Aufruf .Activate auf den bereits aktiven Dokument einen Fehler verursachen?

Ich bisher nicht wirklich in der Lage viel zu finden Dokumentation über diese, so vielen Dank im Voraus für alle Anregungen und Einblicke!

  • Vermutlich haben Sie die Abwicklung der übertragenen Kopie des Dokuments als die ActiveDocument-Eigenschaft in Ihrem code. Es wäre viel besser zuordnen, das document-Objekt in einer Variablen am Anfang des Codes und verwenden Sie die variable durch den rest des Codes. Wie andere haben darauf hingewiesen, sind Sie wahrscheinlich schließen Sie die falsche version des Dokuments in der zweiten Zeile des Codes. Auch wäre es ratsam, die Zuweisung der "original" - Dokument-Objekt in eine variable, wenn Sie es öffnen.
Schreibe einen Kommentar