2010-10-19 75 views
5

Ho scritto un piccolo script che esporta alcuni valori di cella di Excel in Word. Tuttavia, alcuni inserti devono essere in grassetto. E non sembra essere un modo semplice per farlo.Inserire il testo in grassetto in Word utilizzando VBA

Questo codice loop tra i record e li aggiunge al documento di 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 

Accensione grassetto prima di inserire testo e spegnerlo di nuovo sembra poi come la soluzione più logica, in modo che non funziona.

Ho poi cercato di trovare e sostituire il testo, ma che anche non ha funzionato:


     .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

.Content.Find.Execute Replace:=wdReplaceAll 

risposta

5

Sostituire .InsertAfter con .TypeText. L'inserimento funziona come incollare mentre TypeText funziona come se si digiti effettivamente il testo sulla tastiera.

Problemi correlati