2017-10-11 1 views
0

J'ai une table dans mon document Word avec texte formaté, multi-paragraphe/ligne (y compris les listes numérotées et liste à puces). Je voudrais copier ce texte dans une seule cellule en utilisant une macro VBA. Lorsque je colle la cellule de mots dans une cellule Excel, un paragraphe de la source est collé dans une autre ligne. Lorsque je le colle directement dans la cellule (cliquez dans le champ de la formule et collez le contenu du presse-papiers), je perds le formatage. Étant donné qu'une cellule Excel ne prend pas en charge les balises HTML, les listes, etc., il serait correct, si le texte formaté est converti en plain, de remplacer les listes numérotées par des nombres réels.Coller plusieurs paragraphes formatés en une seule cellule

Question: Comment puis-je coller le texte formaté en tant que texte structuré normal dans une seule cellule?

Répondre

0

J'ai trouvé une approche de solution, que je voudrais partager:

resultRow=4 ' row number in Excel sheet 
' read the number of paragraphs from word table cell (vRow) 
i = vRow.Cells(3).Range.Paragraphs.Count 
' copy and paste the cell content into Excel 
vRow.Cells(3).Range.Copy 
ActiveSheet.Cells(resultRow, 3).Select 
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False 
' excel has copied the formatted the paragraphs into consecutive rows 
' of the selected column 
' concatenate the text of the cells 
v = "" 
For j = 0 To i - 1 
    v = v + ActiveSheet.Cells(resultRow + j, 3).Value 
    If j < i - 1 Then v = v + Chr(10) 

Next j 
ActiveSheet.Cells(resultRow, 3).Value = v 
' clear all formatting 
Selection.ClearFormats 
Selection.WrapText = True 
Selection.VerticalAlignment = xlTop