2016-10-07 9 views
0

Ich habe Probleme mit Selection.EndKey Extend: = wdExtend.Wort vba selection.endkey extend

Windows 7 64-Bit-Office 2013 mit den folgenden Referenzen in meinem Projektreferenzen Dialog geprüft:

• Visual Basic für Applikationen • Microsoft Word 15.0 Object Library • OLE-Automatisierung • Normal • Microsoft Office 15.0 Object Bibliothek

Ich öffne ein Word-Dokument, das aus einem Satz Absätze (keine Perioden an den Enden) besteht. Ich möchte jeden Absatz auswählen und durch einen Eintrag aus einer vordefinierten Tabelle ersetzen.

Hier ist der ursprüngliche Code:

For i = intFirstItemNo To intLastItemNo 
    Selection.EndKey Extend:=wdExtend 
    Selection.TypeText Text:=arlAdItem01(i) 
    Selection.MoveRight unit:=wdCharacter, Count:=1 
Next i 

ich dann, dass hin und wieder entdeckt wird es einen Absatz, die länger ist als die Seitenbreite ist und wickelt sich um auf die nächste physikalische Leitung. An dieser Stelle schneidet der obige Code den Absatz am Ende der Zeile ab (Einheit: = wdLine ist der Standardwert).

Nach vielen Experimenten habe ich entdeckt, dass nur die Aufzählungen 5 = wdLine & 6 = wdStory arbeiten. 1 bis 4 (1 = wdCharakter, 2 = wdWord, 3 = wdSentence, 4 = wdParagraph) erzeugt die alte Meldung "Laufzeitfehler 4120".

Das ist die Linie, die ich verwenden mag:

Selection.EndKey Unit:=wdParagraph, Extend:=wdExtend 

Meine Frage ist, kennt jemand, wie den Code arbeiten, um die Art und Weise, um es in dem Selection.EndKey-Methode (Word) Eintrag zur Arbeit beschrieben ist von das Office Dev Center?

Antwort

1

Scheint ein Fehler in Word VBA zu sein. Ist seit 2013 al wenigsten und im Jahr 2016

Ich löste es mit

Selection.MoveDown Unit:=wdParagraph, Count:=1 
Selection.MoveLeft Unit:=wdCharacter, Count:=1 

funktioniert nicht, wenn der Absatz der letzte ist.

+0

Das fand ich tat, was ich wollte: –

+0

Das fand ich tat, was ich Selection.EndOf Einheit wollte: = wdParagraph, Extend: = wdExtend –