Word 中未解析通配符日期格式



在这个循环(iii = 12到1步-1(中,.text通配符根本没有找到任何日期:

With Selection.FInd
.Forward = True
.Wrap = WdFindStop
.text= "([0-9]{1,2}] " & Mon_th(iii) & ([0-9]{4}])"
.Execute
End With

但在这个循环中,它确实:

With ActiveDocument.Content
With.Find
.Forward = True
.Wrap = WdFindStop
.text= "([0-9]{1,2}] " & Mon_th(iii) & ([0-9]{4}])"
End With

我想我需要使用第一个版本,因为我想在每次找到日期时插入评论,但无法弄清楚为什么它适用于一个而不是另一个。

感谢所有的帮助,谢谢。

另外,为什么 .text 在我输入时有一个初始上限,但之后立即更改为小写?

当然,您可以在没有该循环的情况下执行此操作。例如:

.Text = "<[0-9]{1,2} [JFMASOND][abceghilmnoprstuvy]{2,8} [12][0-9]{3}>"

或:

.Text = "<[0-9]{1,2} [JFMASOND][abceglnoprtuvy]{2} [12][0-9]{3}>"

如果您需要不同的注释,可以通过循环中的 Select Case 语句来实现,您已经需要添加这些注释。因此:

Sub Demo()
Application.ScreenUpdating = False
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "<[0-9]{1,2} [JFMASOND][abceglnoprtuvy]{2} [12][0-9]{3}>"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute
End With
Do While .Find.Found
Select Case Split(.Text, " ")(1)
Case "Jan": .Comments.Add .Duplicate, "Comment for Jan"
Case "Feb": .Comments.Add .Duplicate, "Comment for Feb"
Case "Mar": .Comments.Add .Duplicate, "Comment for Mar"
Case "Apr": .Comments.Add .Duplicate, "Comment for Apr"
Case "May": .Comments.Add .Duplicate, "Comment for May"
Case "Jun": .Comments.Add .Duplicate, "Comment for Jun"
Case "Jul": .Comments.Add .Duplicate, "Comment for Jul"
Case "Aug": .Comments.Add .Duplicate, "Comment for Aug"
Case "Sep": .Comments.Add .Duplicate, "Comment for Sep"
Case "Oct": .Comments.Add .Duplicate, "Comment for Oct"
Case "Nov": .Comments.Add .Duplicate, "Comment for Nov"
Case "Dec": .Comments.Add .Duplicate, "Comment for Dec"
End Select
.Collapse wdCollapseEnd
.Find.Execute
Loop
End With
Application.ScreenUpdating = True
End Sub

最新更新