VBA WORD:想要在标签之间获取文本
我想提取介于
之间的文字"<start=" and ">"
并使该文本全部为大写,并将所有空格替换为该特定文本上的连字符。
示例:
<start="The quick brown fox jumps' over the lazy dog while the cat is running-towards the obstacle_course">The quick brown fox jumps' over the lazy dog while the cat is running-towards the obstacle_course</end>
输出必须是:
<start="THE-QUICK-BROWN-FOX JUMPS'-OVER-THE-LAZY-DOG-WHILE-THE-CAT-IS-RUNNING-TOWARDS-THE OBSTACLE_COURSE">The quick brown fox jumps' over the lazy dog while the cat is running-towards the obstacle_course</end>
我使用了以下代码,但它最多只适用于10个字(如果可能,没有限制)。是否有可能/其他方式/ s来做到这一点。
With Selection.Find
.ClearFormatting
.MatchWildcards = True
.Replacement.ClearFormatting
.Text = "<start=" & Chr(34) & xVal & "( )" & xVal & "( )" & xVal & "( )" & xVal & "( )" & xVal
.Replacement.Text = "<start=" & Chr(34) & "\1-\3-\5-\7-\9"
.Replacement.Font.AllCaps = True
.Forward = True
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End with
TIA -Sirk
答案 0 :(得分:0)
如果您确定要查找的每个实例都以 =&#34; 和&gt; 开头和结尾,那么您可以使用这段代码。您必须先选择一些包含您正在寻找的文本。
Private Sub FindStartText()
Dim findRange As range
Set findRange = Selection.range
With findRange.Find
.ClearFormatting
.MatchWildcards = True
.Text = "=""*\>"
End With
findRange.Find.Execute
TextChange findRange
End Sub
Private Sub TextChange(foundRange As range)
Dim myText As String
myText = foundRange.Text
myText = Replace(myText, " ", "-")
myText = UCase(myText)
foundRange.Text = myText
End Sub