【问题标题】:Eliminate space in word file消除word文件中的空格
【发布时间】:2020-07-07 05:42:55
【问题描述】:

在我的word文件中有数百个段落,类似于下面的格式。这里有一个字母 Y。可以是除“A”、“T”、“C”、“G”以外的其他字母。我想删除其中的空白,然后创建一个新行。

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

新行的格式是

AAATGGGCCCCACAGAAGTGAGAATGGGTGAAGTCAGAATTCCTGGTAATGAAGTGCTTGAACTTGGATTCCTCCCGACATGTGCAGTACAATGAGATGATTTTCTCCTTAATGAGATTAGGAAATTCTATTAGCGCTCCCAGCTGCTGACCCGATTCCATGAGGCTGAGGCTCCAGGGCTGAACCTGCCTGGTT[Y]AGTGTTCCTGGAAACTAGACACCCCACCCTTCAGATGGGCCAGGGCCTCCCCAGCTCTACCTAAAGCTGTGGTCTGCCCCCAGGGGTGCCCAGTTTCCTCCCTTCACCCTGTGCTCCAGAGGAGTGTGGGGCCCTGGGCATTCTGCAGTGTACCCCAGGATCCTCACTCCTTCCTGCTTA

通知 Y 变为 [Y]。

最终结果将保存为文本文件。感谢您的帮助。

【问题讨论】:

  • 你想这样做一次还是你想要一个 VB 脚本来做这个? (我注意到了 Word-vba 标签)。
  • 你的意思是像宏还是VB程序?至少你有尝试过什么吗?
  • 其实我想运行一个宏,比如点击一个空白word文件中的按钮然后等等等等。结果可以在文本文件中找到。
  • 在 VBA 中绘制基因组图?世界会变成什么样子?

标签: vba ms-word


【解决方案1】:

您无需编写程序。 “替换”工具就足够了:

  1. Y 替换为 [Y](编辑:请参阅下面的 cmets,因为它确实比这更复杂)
  2. ^w 替换为空(^w 表示 空格
  3. ^p 替换为空(^p 表示段落标记

编辑:如果您需要宏,只需在录制宏时执行上述一次即可。

编辑:通过应用 cmets 中讨论的方法,我得到以下 VBA 宏:

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

【讨论】:

  • 问题的单独字母可能并不总是“Y”。有成千上万的段落。
  • 只要点击“全部替换”,文档的大小无关紧要 ;-) “单独的字母”的集合是否定义明确?这些是什么?
  • 它们可以是“Y”、“Z”、“X”等。除“A”、“G”、“C”、“T”之外的任何字母。
  • 好的。然后,您可以按如下方式执行第一步。在对话框中单击“更多”,然后选中“使用通配符”。用作搜索字符串:([!ACGT^13^32])(除 A、C、G、T 或换行符或空格之外的任何字符)。用作替换字符串:[\1](上面括号中匹配的表达式,在括号之间)。
  • 谢谢。但是如果我坚持使用vba,代码是什么样的?因为想要替换空格的人根本不知道这些功能。他觉得这些步骤太复杂了。他只想要一台机器人机器,点击一个按钮……然后……
猜你喜欢
  • 1970-01-01
  • 2018-01-10
  • 2011-07-02
  • 1970-01-01
  • 2013-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-17
相关资源
最近更新 更多