VBA - 在 Word 中,检查选择是否包含指定的字符串
VBA - in Word, check if selection contains specified character string
我有一个包含多行文本的word文档。我想确定其中哪些行(或段落,如果长于一行)包含字符串“/”并删除那些没有字符串的行。
这是我一直在努力实现的一个例子。 If 语句显然是目前不起作用的部分,但我一直无法找到解决方案。
Selection.WholeStory
nLines = Selection.Range.ComputeStatistics(Statistic:=wdStatisticParagraphs)
Selection.HomeKey Unit:=wdStory
Do While StartNumber2 < nLines
StartNumber2 = StartNumber2 + 1
Selection.HomeKey Unit:=wdLine
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
If Selection.Text = " / " Then
Selection.MoveDown Unit:=wdLine, Count:=1
Else: Selection.Delete Unit:=wdCharacter, Count:=1
End If
Loop
这是它要检查的文本示例。我需要它来删除 2 & 4 并保留 1 & 3:
- 黑色回归 / ACDC (3:54) --
- 今晚 (2:44) --
- 戴钻石的天空中的露西/甲壳虫乐队 (4:22) --
- 随机歌曲名称 (3:33) --
如有任何帮助,我们将不胜感激。
谢谢共产国际。
我认为会有一个简单的方法,InStr 完成了这项工作。
Selection.WholeStory
nLines = Selection.Range.ComputeStatistics(Statistic:=wdStatisticParagraphs)
Selection.HomeKey Unit:=wdStory
Do While StartNumber2 < nLines
StartNumber2 = StartNumber2 + 1
Selection.HomeKey Unit:=wdLine
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
If InStr(Selection, " / ") > 0 Then
Selection.MoveDown Unit:=wdLine, Count:=1
Else: Selection.Delete Unit:=wdCharacter, Count:=1
End If
Loop
我有一个包含多行文本的word文档。我想确定其中哪些行(或段落,如果长于一行)包含字符串“/”并删除那些没有字符串的行。
这是我一直在努力实现的一个例子。 If 语句显然是目前不起作用的部分,但我一直无法找到解决方案。
Selection.WholeStory
nLines = Selection.Range.ComputeStatistics(Statistic:=wdStatisticParagraphs)
Selection.HomeKey Unit:=wdStory
Do While StartNumber2 < nLines
StartNumber2 = StartNumber2 + 1
Selection.HomeKey Unit:=wdLine
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
If Selection.Text = " / " Then
Selection.MoveDown Unit:=wdLine, Count:=1
Else: Selection.Delete Unit:=wdCharacter, Count:=1
End If
Loop
这是它要检查的文本示例。我需要它来删除 2 & 4 并保留 1 & 3:
- 黑色回归 / ACDC (3:54) --
- 今晚 (2:44) --
- 戴钻石的天空中的露西/甲壳虫乐队 (4:22) --
- 随机歌曲名称 (3:33) --
如有任何帮助,我们将不胜感激。
谢谢共产国际。 我认为会有一个简单的方法,InStr 完成了这项工作。
Selection.WholeStory
nLines = Selection.Range.ComputeStatistics(Statistic:=wdStatisticParagraphs)
Selection.HomeKey Unit:=wdStory
Do While StartNumber2 < nLines
StartNumber2 = StartNumber2 + 1
Selection.HomeKey Unit:=wdLine
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
If InStr(Selection, " / ") > 0 Then
Selection.MoveDown Unit:=wdLine, Count:=1
Else: Selection.Delete Unit:=wdCharacter, Count:=1
End If
Loop