Формат даты с подстановочными знаками не разрешен в Word - PullRequest
0 голосов
/ 17 февраля 2020

В этом l oop (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

Но в этом l oop, он делает:

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

Я думаю, что мне нужно использовать первую версию, потому что я хочу вставлять комментарий каждый раз, когда найдена дата, но не могу понять, почему она работает с одной, а не с другой .

Спасибо за помощь, спасибо.

Кроме того, почему .text имеет начальную заглавную букву при вводе, но сразу после нее переходит на нижний регистр?

1 Ответ

0 голосов
/ 18 февраля 2020

Конечно, вы можете сделать это без этого oop. Например:

.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 в l oop, который вам уже понадобится для добавив те. Таким образом:

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
...