我需要帮助来更改某些doc文件中的日期格式。我有数百个页面,我用罗马尼亚语替换不同的日期,实际上我需要在日期之前只更换斜杠,有更简单的方法吗?替换所有日期的宏
类似的东西:
"nr. 313/17 noiembrie 2011" i have to replace it with "nr. 313 din 17 noiembrie 2011" "15/3 aprilie 2012" -> "15 din 3 aprilie 2012" "27/03 aprilie 2012" -> "27 din 03 aprilie 2012"
我必须用“din”(前后空格)替换数字之间的斜杠“/”
II。我也必须小心使用替换因为我在文本中有其他格式,例如“art.385 / 15”,其中斜杠不应该替换为“din”一词
这是另一个我没有找到答案的问题:
"art. 15/2" - "art. 152" "art. 27/12" - "art. 2712" "art. 385/19" - "art. 38519"
有没有办法解决这两个问题? (我使用2007年和2010年的文字)
答案 0 :(得分: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),它应该替换你指定的所有日期。
搜索例程假设斜杠两侧的数字最长可达三位数(如原始帖子中的第一个示例);可以根据需要在搜索字符串中轻松更改该数字。