2011-02-25 3 views
1

dans mon fichier de mots, il y a des centaines de paragraphe qui aiment le format ci-dessous. Il y a une seule lettre Y ici. Il peut s'agir d'une autre lettre sauf "A", "T", "C", "G". Je veux enlever l'espace blanc dedans puis créer une nouvelle ligne.Éliminer l'espace dans le fichier Word

AAATGGGCCC CACAGAAGTG AGAATGGGTG AAGTCAGAAT TCCTGGTAAT GAAGTGCTTG 
AACTTGGATT CCTCCCGACA TGTGCAGTAC AATGAGATGA TTTTCTCCTT AATGAGATTA 
GGAAATTCTA TTAGCGCTCC CAGCTGCTGA CCCGATTCCA TGAGGCTGAG GCTCCAGGGC 
TGAACCTGCC TGGTT 
Y 
AGTGTTCCTG GAAACTAGAC ACCCCACCCT TCAGATGGGC CAGGGCCTCC CCAGCTCTAC 
CTAAAGCTGT GGTCTGCCCC CAGGGGTGCC CAGTTTCCTC CCTTCACCCT GTGCTCCAGA 
GGAGTGTGGG GCCCTGGGCA TTCTGCAGTG TACCCCAGGA TCCTCACTCC TTCCTGCTTA 

Le nouveau format de ligne est

AAATGGGCCCCACAGAAGTGAGAATGGGTGAAGTCAGAATTCCTGGTAATGAAGTGCTTGAACTTGGATTCCTCCCGACATGTGCAGTACAATGAGATGATTTTCTCCTTAATGAGATTAGGAAATTCTATTAGCGCTCCCAGCTGCTGACCCGATTCCATGAGGCTGAGGCTCCAGGGCTGAACCTGCCTGGTT[Y]AGTGTTCCTGGAAACTAGACACCCCACCCTTCAGATGGGCCAGGGCCTCCCCAGCTCTACCTAAAGCTGTGGTCTGCCCCCAGGGGTGCCCAGTTTCCTCCCTTCACCCTGTGCTCCAGAGGAGTGTGGGGCCCTGGGCATTCTGCAGTGTACCCCAGGATCCTCACTCCTTCCTGCTTA 

Avis Y devient [Y].

Le résultat final sera enregistré sous forme de fichier texte. Merci pour l'aide.

+2

Voulez-vous faire une fois ou voulez-vous un script VB dans le mot pour ce faire? (J'ai remarqué la balise Word-vba). – Argote

+0

Vous voulez dire comme une macro ou un programme VB? Et au moins avez-vous essayé de faire quelque chose? –

+0

En fait, je veux lancer une macro telle que cliquer sur un bouton dans un fichier de mots vides puis bla bla. Le résultat peut être trouvé dans un fichier texte. –

Répondre

1

Vous n'avez pas besoin d'écrire un programme. L'outil « Remplacer » suffit pour cela:

  1. Remplacer Y avec [Y] (EDIT: voir les commentaires ci-dessous, car il est un peu plus complexe que cela en effet)
  2. Remplacer ^w rien (^w signifie espaces blancs)
  3. Remplacer ^p rien (^p signifie marqueurs de paragraphe)

EDIT: si vous avez besoin d'une macro, faites simplement ce qui précède une fois pendant l'enregistrement d'une macro.

EDIT: en appliquant la méthode décrite dans les commentaires, je reçois la macro VBA suivante:

Sub ProcessATCG() 
    Selection.Find.ClearFormatting 
    Selection.Find.Replacement.ClearFormatting 
    With Selection.Find 
     .Text = "([!ACGT^13^32])" 
     .Replacement.Text = "[\1]" 
     .Forward = True 
     .Wrap = wdFindContinue 
     .Format = False 
     .MatchCase = False 
     .MatchWholeWord = False 
     .MatchAllWordForms = False 
     .MatchSoundsLike = False 
     .MatchWildcards = True 
    End With 
    Selection.Find.Execute Replace:=wdReplaceAll 
    With Selection.Find 
     .Text = "[^13^32]" 
     .Replacement.Text = "" 
     .Forward = True 
     .Wrap = wdFindContinue 
     .Format = False 
     .MatchCase = False 
     .MatchWholeWord = False 
     .MatchAllWordForms = False 
     .MatchSoundsLike = False 
     .MatchWildcards = True 
    End With 
    Selection.Find.Execute Replace:=wdReplaceAll 
End Sub 
+0

La question de la lettre séparée peut ne pas toujours être "Y". Il y a des milliers de paragraphes. –

+0

La taille du document n'a pas d'importance tant que vous cliquez sur "Remplacer tout" ;-) L'ensemble des "lettres séparées" est-il bien défini? Qu'est-ce que c'est? – ChrisJ

+0

Ils peuvent être "Y", "Z", "X" etc. Toute lettre à l'exception de "A", "G", "C", "T". –

Questions connexes