vba根据内容调整word表格_给你的word提速
曾經貼報告附注的時候需要把各種數據粘貼到word中,其中最讓我頭疼的事情莫過于word中的格式調整、數字的千分符調整(擠著眼睛去打逗號)、還有把數字換算為萬元,手工調整的時候就感覺自己是個呆瓜(當然此瓜非彼瓜),于是自己寫了兩個小工具,這次一起送給大家。放心,不用安裝什么工具箱沒有套路收費。
1.三個按鈕:千分符、數字除萬、數字除萬添“萬”
首先先看3個按鈕的效果:
設置方法非常簡單,跟著步驟走,2分鐘搞定:
第一步、首先在任何word文檔中按ALT+F11,呼出VBE編輯器
第二步、找到左側normal模板,若沒有模塊,則右鍵插入模塊
第三步、雙擊模塊1,把下面的代碼復制粘貼進來
代碼如下:
Sub 除萬添萬() Dim i As Single Application.ScreenUpdating = False If Selection.Type = 2 ThenIf IsNumeric(Selection.Text) Theni = Selection.Textp = i / 10000q = Format(Round(p, 2), "#,##0.00;-#,##0.00; ")Selection.Text = q & "萬"End If ElseIf Selection.Type = 5 ThenFor Each Acell In Selection.CellsSet CR = ActiveDocument.Range(Acell.Range.Start, Acell.Range.End - 1)'MsgBox CRIf IsNumeric(CR.Text) Theni = CR.Textp = i / 10000q = Format(Round(p, 2), "#,##0.00;-#,##0.00; ")CR.Text = q & "萬"End IfNext ElseIf Selection.Type = 4 ThenFor Each Acell In Selection.CellsSet CR = ActiveDocument.Range(Acell.Range.Start, Acell.Range.End - 1)'MsgBox CRIf IsNumeric(CR.Text) Theni = CR.Textp = i / 10000q = Format(Round(p, 2), "#,##0.00;-#,##0.00; ")CR.Text = q & "萬"End IfNext End If Application.ScreenUpdating = True End Sub Sub 除萬() Dim i As Single Application.ScreenUpdating = False If Selection.Type = 2 ThenIf IsNumeric(Selection.Text) Theni = Selection.Textp = i / 10000q = Format(Round(p, 2), "#,##0.00;-#,##0.00; ")Selection.Text = qEnd If ElseIf Selection.Type = 5 ThenFor Each Acell In Selection.CellsSet CR = ActiveDocument.Range(Acell.Range.Start, Acell.Range.End - 1)'MsgBox CRIf IsNumeric(CR.Text) Theni = CR.Textp = i / 10000q = Format(Round(p, 2), "#,##0.00;-#,##0.00; ")CR.Text = qEnd IfNext ElseIf Selection.Type = 4 ThenFor Each Acell In Selection.CellsSet CR = ActiveDocument.Range(Acell.Range.Start, Acell.Range.End - 1)'MsgBox CRIf IsNumeric(CR.Text) Theni = CR.Textp = i / 10000q = Format(Round(p, 2), "#,##0.00;-#,##0.00; ")CR.Text = qEnd IfNext End If Application.ScreenUpdating = True End Sub Sub 千分符() '選定千分位On Error Resume Next Dim i As Range, Acell As Cell, CR As RangeOn Error Resume NextApplication.ScreenUpdating = FalseIf Selection.Type = 2 Then '文檔選定For Each i In Selection.WordsIf IsNumeric(i) ThenIf i Like "####*" = True ThenIf i.Next Like "." = True And i.Next(wdWord, 2) Like "#*" = True Theni.SetRange Start:=i.Start, End:=i.Next(wdWord, 2).EndNC = Format(i, "#,##0.00;-#,##0.00; ")i.Text = NCElseNC = Format(i, "#,##0.00;-#,##0.00; ")i.Text = NCEnd IfEnd IfEnd IfNext iElseIf Selection.Type = 4 Or Selection.Type = 5 Then '豎形表格(5為橫形表格)For Each Acell In Selection.CellsSet CR = ActiveDocument.Range(Acell.Range.Start, Acell.Range.End - 1) ' MsgBox CRIf CR Like "-####*" Or "-####.#*" = True ThenYn = Format(CR, "#,##0.00;-#,##0.00; ")CR.Text = YnElseIf CR Like "####*" Or "####.#*" = True ThenYn = Format(CR, "#,##0.00;-#,##0.00; ")CR.Text = YnEnd IfEnd IfNext AcellElseMsgBox "您只能選定文本或者表格之一!", vbOK + vbInformationEnd IfApplication.ScreenUpdating = True Application.ActivateEnd Sub第四步、設置快速訪問欄
第五步、修改一下名稱以及圖標,搞定
至此,這3個按鈕已經被添加到了word快速訪問欄了,大家可以測試一下~
注意:這個模塊內的代碼有一定幾率會被殺毒軟件定期清理(防止宏病毒),如果哪天失效了,照上述步驟復制一遍代碼就行了(到第三步即可),按鈕已經不用設置了。
2.word格式刷
本文的格式刷,關注<茶瓜子的休閑館>在后臺回復“軟件”獲取下載地址,請用OFFICE的Word打開
按所里的要求,我預置了一些格式做成了一個小窗體,展示如下:
總共只有3個功能,界面如下:
1、表格格式調整,分為單選和多選調整,如果你只需要調一個表,那么把光標點在這個表格的任意位置,點單選調整即可。如果要同時調多個表,那就要選中連續的幾個表,點多選調整。 默認是沒有勾“窗口和內容自動調整”的兩個選項,勾了以后調出來的表可能會比較丑。(表格建議用單選調整,而且這個工具只能大致粗略的調一遍,肯定是要自己再細致調整的。) 2、段落格式調整,也是分為單選和多選,邏輯與上述一致,調單個段落只用點中段落中的任意位置,無需全選。多段調整則要連續全選段落。(段落可以一次性多選調整) 3、小標題的級次調整,無需多說
4、這些格式我已經寫死在VBA代碼里面了,如果想更改的話,可以打開VBE編輯器,自己去里面翻翻代碼,找到格式相關的關鍵字自己設置一下,代碼都沒有加密。
使用注意:這個格式刷文檔打開以后點“啟動”,建議將彈出主窗體移至屏幕的一邊,因為點完按鈕后會彈出“完成”的提示框,這個框可能被主窗體擋住,造成假死的感覺(即你看不到提示框,因為它被擋住了,但是不關掉完成提示框,你就操作不了文檔),如果假死,按一下回車把“完成”提示框關掉即可。
想學習更多的辦公技巧或0基礎入門VBA,可以關注微信公眾號<茶瓜子的休閑館>
總結
以上是生活随笔為你收集整理的vba根据内容调整word表格_给你的word提速的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓seekbar 怎么判断正负_厦门湖
- 下一篇: 音频的音量检测java实现_免费剪切和合