2015-05-13 4 views
-1

Моя цель - написать предложение/параграф со способностью изменять стили шрифтов в одном и том же предложении/параграфе. Это делается в Excel VBA и выводится в текстовом документе (я уверен, что вы можете сказать).Excel VBA to Word Doc - Изменение стилей шрифтов в предложении/параграфе

Пример: «Пожалуйста, смотрите Таблица 1Примечание Таблица 1 предполагается..»

С кодом ниже, кажется, установить весь срок до последней wdStyleTypeCharacter, который был вызван из.

Dim appWord As Word.Application 
Dim objDoc As Word.Document 
Set appWord = New Word.Application 
appWord.Visible = True 
Set objDoc = appWord.Documents.Add 

Set Normal = objDoc.Styles.Add(Name:="Normal", Type:=wdStyleTypeCharacter) 
Set Bold = objDoc.Styles.Add(Name:="Bold", Type:=wdStyleTypeCharacter) 
Set Italic = objDoc.Styles.Add(Name:="Italic", Type:=wdStyleTypeCharacter) 

With objDoc 

With .Styles(Normal) 
.Font.Name = "Arial Narrow" 
.Font.Size = 11 
.Font.Italic = False 
.Font.Bold = False 
End With 

With .Styles(Bold) 
.Font.Name = "Arial Narrow" 
.Font.Size = 11 
.Font.Italic = False 
.Font.Bold = True 
End With 

With .Styles(Italic) 
.Font.Name = "Arial Narrow" 
.Font.Size = 11 
.Font.Italic = True 
.Font.Bold = False 
End With 

.Content.InsertParagraphAfter 
.Range.Style = .Styles(Normal) 
.Content.InsertAfter "Please see " 
.Range.Style = .Styles(Bold) 
.Content.InsertAfter "Table 1" 
.Range.Style = .Styles(Italic) 
.Content.InsertAfter ". Note Table 1 is assumed." 
.Content.InsertParagraphAfter 

End with 

objDoc.Close savechanges:=wdSaveChanges 
appWord.Quit 
Set objDoc = Nothing 
Set objWord = Nothing 
End Sub 
+0

Если я не ошибаюсь, это делает именно то, что говорит ваш код. В пределах вашего основного '' С' вы меняете стиль три раза, а последний - курсив. Попробуйте разделить свои «С» на три предложения/стили. – mrbungle

ответ

0

Я не уверен на 100%, почему у вас есть к вам .selection the word.application, но это решает мою проблему. Если бы кто-нибудь мог ответить на это, это было бы здорово только для моего основного понимания (нового для этого).

Dim appWord As Word.Application 
Dim objDoc As Word.Document 
Set appWord = New Word.Application 
appWord.Visible = True 
Set objDoc = appWord.Documents.Add 

With appWord.Selection 
.Font.Name = "Arial Narrow" 
.Font.Size = 11 
.TypeText Text:="Please see " 
.Font.Bold = wdToggle 
.TypeText Text:="Table 1" 
.Font.Bold = wdToggle 
.Font.Italic = wdToggle 
.TypeText Text:=". Note Table 1 is assumed." 
End With 

objDoc.Close savechanges:=wdSaveChanges 
appWord.Quit 
Set objDoc = Nothing 
Set objWord = Nothing 
End Sub 

Надеюсь, это поможет кому-то еще в будущем.

Смежные вопросы