[英]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.