Вставьте жирный текст в Word, используя VBA - PullRequest
5 голосов
/ 19 октября 2010

Я написал небольшой скрипт, который экспортирует определенные значения ячеек Excel в Word. Однако некоторые вставки должны быть выделены жирным шрифтом. И, кажется, нет простого способа сделать это.

Этот код просматривает записи и добавляет их в документ Word


Do While intRow < intTotalRows + 1

                strTemp = " ;b;" & Range("G" & intRow).FormulaR1C1 & " " & Range("I" & intRow).FormulaR1C1 & ";e; "

                If strTemp <> strCur Then
                    strCur = strTemp
                    .Content.Font.Bold = True
                    .Content.InsertAfter strCur
                End If

                .Content.Font.Bold = False
                .Content.InsertAfter Range("A" & intRow).FormulaR1C1 & " - " & Range("C" & intRow).FormulaR1C1 & " " & Range("E" & intRow).FormulaR1C1 & " * "

            intRow = intRow + 1
        Loop

Включение жирным шрифтом перед вставкой текста и последующее его выключение кажется наиболее логичным решением, поэтому оно не работает.

Затем я попытался найти и заменить текст, но это также не сработало:


        .Content.Find.ClearFormatting
        With .Content.Find
            .Text = ";b;" 'Look for
            .Replacement.Text = ";bbb;" 'Replace with
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False 
            .MatchWholeWord = False
            .MatchWildcards = False 
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With</p>

<pre><code>    .Content.Find.Execute Replace:=wdReplaceAll

1 Ответ

5 голосов
/ 19 октября 2010

Заменить .InsertAfter на .TypeText. Вставка работает как вставка, тогда как TypeText работает так же, как если бы вы действительно печатали текст на клавиатуре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...