2

我需要帮助来更改某些 doc 文件中的日期格式。我有数百页在其中替换了罗马尼亚语的不同日期,实际上我只需要替换日期之前的斜线,有没有更简单的方法可以做到这一点?像这样替换所有日期的宏

就像是:

“nr. 313/17 noiembrie 2011”我必须用“nr. 313 din 17 noiembrie 2011”替换它

“2012 年 4 月 15 日 3 日”->“2012 年 4 月 3 日 15 din 3”

“2012 年 4 月 27 日”->“2012 年 4 月 3 日 27 丁”

我必须用单词“din”替换数字之间的斜杠“/”(前后有空格)

二、我还必须小心替换,因为我在文本中有其他格式,例如“art. 385/15”,其中斜线不应替换为“din”一词

这是我还没有找到答案的另一个问题:

                
“第 15/2 条” - “第 15 条2条”

"第 27/12 条" - "第 27 条第12条"

"第 385/19 条" - "第 385 条第19条" 
  • “/2”、“/12”、“/19”只能用上标替换,斜杠必须删除,我有很多这样的文章需要替换……宏可以帮助我工作更快更好

有什么办法可以解决这2个问题吗?(我使用 word 2007 和 2010)

4

1 回答 1

1

OP 要求将格式为“15/3 aprilie”的日期字符串更改为“15 din 3 aprilie”,而不影响 [number/number] 的其他情况。这可以通过通配符搜索和替换操作来完成,该操作在 12 个月中的每个月运行 12 次。

包含单个搜索和替换操作的核心例程如下:

     Sub replacemonth(month As String)

            With ActiveDocument.Range.Find
                .ClearFormatting
                .Text = "([0-9]{1,3})/([0-9]{1,3} " + month + ")"
                .Replacement.ClearFormatting
                .Replacement.Text = "\1 din \2"
                .Forward = True
                .Wrap = wdFindStop
                .Format = False
                .MatchCase = False
                .MatchWholeWord = False
                .MatchWildcards = True
                .Execute Replace:=wdReplaceAll
            End With

    End Sub

然后第二个例程运行每个月的例程:

 Sub ReplaceDates()
       replacemonth ("ianuarie")
       replacemonth ("februarie")
       replacemonth ("martie")
       replacemonth ("aprilie")
       replacemonth ("mai")
       replacemonth ("iunie")
       replacemonth ("iulie")
       replacemonth ("august")
       replacemonth ("septembrie")
       replacemonth ("octombrie")
       replacemonth ("noiembrie")
       replacemonth ("decembrie")
End Sub

将这两个都放入宏编辑器中,运行第二个宏(ReplaceDates),它应该替换您指定的所有日期。

搜索例程假定斜杠两边的数字最多为三位(如原始帖子中的第一个示例所示);该数字可以根据需要在搜索字符串中轻松更改。

于 2012-09-07T01:58:09.967 回答