[英]Feasibility of using macros/VBA for my formatting needs in Word? (Dates, currencies, styles)
我已经成功地找到了满足我当前某些需求的现有代码,但我想知道是否/如何使用 VBA 在 Microsoft Word 中执行以下操作,因为我目前在格式化上花费了大量时间。 我不确定其中一些是否在 VBA 下是可能的,所以在我花费比我已经研究的时间更多的时间之前,我真的很感激他们的可行性。 非常感谢!
将日期更改为我想要的格式。 例如24/9/2019、2019年9月24日、2019年9月24日、星期二(9月24日)——> 19年9月24日
更改货币。 例如20亿英镑到20亿英镑,1790亿欧元到1790亿欧元,7000万美元到7000万美元
将“上周”、“本周”、“下周”更改为“d mmm yy 结束的一周”。 例如上周——> 19 年 9 月 1 日结束的一周
我知道上面的所有编辑,如果使用宏进行,将容易出现很多错误。 我的计划是在使用宏之前跟踪更改,以便我仍然可以接受或拒绝每个更改。 我也不确定改变周的可行性 - 我可以实时使用日期吗?
款式一
款式2
车身(款式 3)
车身(款式 3)
车身(款式 3)
款式一
款式2
车身(款式 3)
车身(款式 3)
车身(款式 3)
等等等等。 样式 1 中的段落一开始都已正确格式化,但我现在要做的是格式化样式 2 和样式 3。 宏能否以某种方式检测到我的样式 2 段落始终低于样式 1 段落,并为我设置格式? 同样,我的样式 3 段落始终低于样式 2/另一个样式 3 段落。
太多的问题...无论如何。 关于日期。 它不是一个简单的宏,因为您要更改很多格式。 从 dd/mm/yyyy 更改为 dd mm yyyy 的代码:
Sub DateRepl()
Dim Test As Boolean
Selection.HomeKey Unit:=wdStory, Extend:=wdMove
Test = True
Do While Test
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "([0-9]{1,2})[/]([0-9]{1,2})[/]([0-9]{4})"
.Format = True
.Forward = True
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceNone
If IsDate(Selection.Text) Then
Selection.Text = Format(Selection.Text, "dd mm yyyy")
Selection.Collapse wdCollapseEnd
Else
Test = False
End If
Loop
End Sub
关于货币项目,这将是非常困难的,因为您有很多机会(百万、十亿……)。
关于周替换:
Dim Today, Workday
Today = Now
Workday = Weekday(Today)
With Selection.Find
.ClearFormatting
.Text = "last week"
.Replacement.ClearFormatting
.Replacement.Text = "the week ending " & DateAdd("d", -Workday, Now)
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
End With
With Selection.Find
.ClearFormatting
.Text = "this week"
.Replacement.ClearFormatting
.Replacement.Text = "the week ending " & DateAdd("d", 7-Workday, Now)
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
End With
With Selection.Find
.ClearFormatting
.Text = "next week"
.Replacement.ClearFormatting
.Replacement.Text = "the week ending " & DateAdd("d", 14-Workday, Now)
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
End With
关于格式,我不知道。
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.