2010-10-19 10 views
5

J'ai écrit un petit script qui exporte certaines valeurs de cellules Excel dans Word. Cependant, certaines insertions doivent être en gras. Et il ne semble pas y avoir de moyen facile de le faire.Insérer du texte en gras dans Word en utilisant VBA

Ce code boucle dans les dossiers et les ajoute au document 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 

Mise en gras avant d'insérer du texte et éteindre à nouveau semble par la suite comme la solution la plus logique, donc il ne fonctionne pas.

J'ai ensuite essayé de trouver et de remplacer le texte, mais aussi ne fonctionne pas:


     .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 

Répondre

5

Remplacer .InsertAfter avec .TypeText. Insérer des travaux comme coller tandis que TypeText fonctionne comme si vous tapez réellement le texte sur le clavier.