2017-03-10 3 views
0

I-Code wie diese Ausgabe mit bin alle Kopf-/Fußzeilen pro Abschnitt in eine Textdatei: Word VBA - getting text file output to look rightWord-VBA: Konvertieren Hoch- in Fußzeilen/Headers

Ich habe in der Lage, alle Sonderzeichen konvertieren in der sHeader/sFooter String-Variablen mit Replace() ohne Probleme.

Beispiel: sFooter = Replace(sFooter, ChrW(8804), "^R'\ {\uc2\u8804 <=}'")

Alles ist großartig, bis ich versuche, einen Exponenten zu ersetzen. Alt + x gibt mir nur den Wert des Buchstabens selbst. Ich habe versucht, den hexadezimalen Wert nachzuschlagen (vielleicht ist es gar kein Ding), ohne Erfolg. Ich habe sogar die verschiedenen lateinischen Zeichenwerte ausprobiert.

nahm ich einen Makro, um zu sehen, wie Word ersetzen würde und bekam:

Selection.Find.ClearFormatting 
With Selection.Find.Font 
    .Superscript = True 
    .Subscript = False 
End With 

Selection.Find.Replacement.ClearFormatting 
With Selection.Find 
    .Text = "A" 
    .Replacement.Text = "^super{a}" 
    .Forward = True 
    .Wrap = wdFindContinue 
    .Format = True 
    .MatchCase = False 
    .MatchWholeWord = False 
    .MatchWildcards = False 
    .MatchSoundsLike = False 
    .MatchAllWordForms = False 
End With 
Selection.Find.Execute Replace:=wdReplaceAll 

Das Problem, das ich nicht wissen, ist, wie sie gemeinsam zu nutzen. Ich habe versucht, oSec.Footers(wdHeaderFooterFirstPage).Range.Find... anstelle von Selection.Find... zu verwenden, aber das führt zu einer Nullzeichenfolge.

Kann ich ein String-Objekt irgendwie von sHeader/sFooter erstellen, damit ich den aufgezeichneten Makrocode verwenden kann? Ich habe versucht zu googeln, String in Objekt konvertiert, aber nichts bekommen. Gibt es einen besseren Ansatz?

Vielen Dank im Voraus.

Antwort

0

Vielen Dank M1chael für Ihre Eingabe.

Ich konnte das oben aufgezeichnete Makro aufrufen, indem ich die Auswahl auf den aktuellen Kopf-/Fußbereich einstellte.

Beispiel:

oSec.Footers(wdHeaderFooterPrimary).Range.Select 
Selection = ActiveDocument.ActiveWindow.Selection 

Dank

0

Ich weiß, dass dies nicht genau Ihre Frage beantwortet, aber das Problem ist, dass das Zeichen die gleiche ist, ob es hochgestellt ist oder nicht, d. H. Hochgestellt ist Formatierung, genau wie fett oder kursiv.

Zum Beispiel ein kühner A, ein normales A und ein hochgestelltes A haben alle Code 65.

Wenn Sie in einer Textdatei speichern, werden Sie nicht in der Lage sein, die Formatierung zu speichern, so dass Sie benötigen würde um eine eigene Darstellung für eine hochgestellte Figur zu erfinden.

Die Darstellung aus dem Suchen/Ersetzen-Code, d. H. "^ Super {a}", verwendet Word, damit Sie Text mit einer bestimmten Formatierung suchen/ersetzen können.

Hinweis: Es gibt einige Sonderzeichen wie ², die einen separaten Zeichencode zu 2 haben, also würden diese einen anderen Code haben.