我正在尝试创建一个宏,但是我不知道从哪里开始,我想在特殊字符之间隐藏一些文本,例如:
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ (including "space" char)
例如,如果我有这样的文档:
::00-58-96::Hello there
::00-58-97::This is a test
::00-58-98::Nothing else
::00-58-99::Good bye !
我想在执行宏后得到这个:
Hello there
This is a test
Nothing else
Good bye !
之间的文字
:: ::
已被删除(包括:::)
另一个例子:
>>>some%text_here>>>This is another example
>>>some%text"here>>>Thank you for reading
>>>some%text@here>>>I hope you will have
>>>some&text²here>>>A great day
输出将是:
This is another example
Thank you for reading
I hope you will have
A great day
我第一次考虑使用“查找和替换文本”功能,但是我认为这太复杂了。
任何提示都会很有帮助。
谢谢!
答案 0 :(得分:0)
这可以做到:
Sub tst()
ActiveDocument.Range.Select ' You can remove this line and run macro after selecting the text in which you want the replacement. This line will select the entire document.
With Selection.Find
.MatchWildcards = True
.Text = "::*::"
.Replacement.Text = ""
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
End With
End Sub
Pro:Cntrl + Z
可以撤消此操作,如果它没有达到预期的效果。
答案 1 :(得分:0)
您不需要VBA-您只需要一个通配符查找/替换,其中:
查找=([!“#$%&'()* +,-。/ :; <=> \?@ [\] ^ 94_` {|}〜] {2,})* \ 1 < / p>
然后,根据要删除还是仅隐藏找到的内容,使用:
替换=无
或
替换= ^&
分别具有“隐藏”字体属性。
您当然可以将上面的内容记录为宏。