如何使用宏从Word中删除特定文本?
Dim ActualParagraph As Paragraph
Set ActualParagraph = Selection.Paragraphs(1)
...
我试过
ActualParagraph.Range.Characters(1).Delete Unit:=wdCharacter
在循环中删除前X个字符,但问题是如果有空格,Word会自动删除前面的字符,因此您无法轻松计算应该调用此类.Delete的次数
我试过
ActualParagraph.Range.Delete(WdUnits.wdCharacter, 1)
但它会删除整个段落而不管其中的字符数。
我可以指定任何可靠的方法,例如,从字符X删除字符Y所有内容。我也无法在MSDN或其他任何地方找到任何有用的东西。我不想通过搜索然后删除所选文本来删除。
由于
答案 0 :(得分:2)
可以在没有VBA的情况下完成。 Ctrl + H,查找:“sampleText”,替换:“”。 它会将“sampleText”替换为空。
但是,这是在“.Text =”中使用变量的代码:
Option Explicit
Sub replaceSampleToNothing()
Dim sample
sample = "sampleText"
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = sample
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
答案 1 :(得分:0)
删除你要求的字符后删除空白的事实可能是因为“Smart Cut& Paste”选项,当你删除单词本身时,删除空白后的字样就行了。请参阅文件 - >选项 - >高级 - >剪切,复制和粘贴部分 - > “Smart Cut& Paste”及其选项。
另一个问题是,当给出一个非空的选择/范围的文本时,它会出现,Selection.Delete会忽略你给它的计数,只是删除了选择(文档很明显就像这样)。