强大的word宏

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

强大的word宏:㈠录制一个宏

网上拷贝的资料,粘贴到word以后,可能会有很多多余的回车,利用宏可以轻松删除。

打开菜单:工具→宏→录制新宏,打开“录制宏”对话框,输入宏的名字,单击确定开始录制宏。

2、按CTRL+H打开替换对话框,查找内容“^p^p”替换为“^p”,即将两个连续的回车符替换成一个回车符。可多单击几次“全部替换”按钮,因为可能有多个连续的回车符。

3、单击停止录制按钮,完成录制。

看一下刚才录制的宏。打开菜单:工具→宏→Visual Basic 编辑器。

上面就是我们刚才录制的宏代码。

打开菜单:工具→宏→宏,打开“宏”对话框。

选中刚才录制的宏,单击运行,即可以将当前Word文档中的多余的回车符删除。如果要经常使用,可以设置工具按钮或快捷键。设置方法如下:

在Word工具栏上右击→自定义…,打开“自定义”对话框。

找到刚才录制的宏,将其拖到工具栏合适的地方。

在刚添加的按钮上右击,可对按的名字、图像进行编辑。

单击“自定义”对话框上的“键盘…”按钮,打开“自定义键盘”对话框。

选中刚才录制的宏,按下合适的快捷键,关闭对话框,完成设置。

以后只要单击工具栏按钮或自定义的快捷键,就可以运行删除多余回车符了。

我的工具栏……*_*

㈡删除空的段落

录制的宏,有很多代码实际上没用,可以对录制的宏代码进行手工编辑,下面宏代码即实现删除空的段落。

方案一,效率较高,但可能删除不了超过10亿个连续的回车符。Do While……Loop,也可用For ……Next语句替换。If I > 30 Then ……End If是为了限制循环次数。因为如果是第一段、最后一段是空段落,用替换功能删除不了。原因,知道的指教一下。

Sub 删多余回车()

Dim I As Integer

Selection.End = 0 '将光标移动到文档的开始

Selection.Find.Execute "^l", , , , , , True, wdfindcontiue, False, "^p", wdReplaceAll '将换行符替换成回车符

I = 0

Do While (Selection.Find.Execute("^p^p", , , , , , True, wdfindcontiue, False, "^p", wdReplaceAll))

I = I + 1

If I > 30 Then

If 1 = Len(ActiveDocument.Paragraphs(1).Range.Text) Then ActiveDocument.Paragraphs(1).Range.Delete'如果第一段是空段落,则删除

If 1 = Len(ActiveDocument.Paragraphs(ActiveDocument.Paragraphs.Count).Range.Text) Then ActiveDocument.Paragraphs(ActiveDocument.Paragraphs.Count).Range.Delete'如果最后一段是空段落,则删除

Exit Do

End If

Loop

MsgBox CStr(I)

End Sub

方案二,从当前文档的最后一段开始,逐段检查,如果只有一个字符,将该段删除。该方案效率相对较低,当文档上千段的时候,速度会让人崩溃。友情提醒,宏在运行时候,CTRL+BREAK 键可以停止。

Sub 删多余回车()

Dim I As Integer, 段落数As Integer

Selection.End = 0 '将光标移动到文档的开始

Selection.Find.Execute "^l", , , , , , True, wdfindcontiue, False, "^p", wdReplaceAll '将换行符替换成回车符

段落数= ActiveDocument.Paragraphs.Count

For I = 段落数To 1 Step -1 '删除多余回车

If Len(ActiveDocument.Paragraphs(I).Range.Text) = 1 Then

ActiveDocument.Paragraphs(I).Range.Delete

End If

Next I

End Sub

强大的word宏:㈢删除多余空格

Sub 删空格()

替换" ", "" '半角空格替换成全角空格

Do While (Selection.Find.Execute("^$", , , , , , True, , False)) '英文字母全角空格后加半角空格

Selection.Range.InsertAfter " "

Loop

替换"", "" '删除中文空格

End Sub

Function 替换(被替换文本As String, 替换文本As String) As Boolean

Selection.End = 0

替换= Selection.Find.Execute(被替换文本, , , , , , True, wdfindcontiue, False, 替换文本, wdReplaceAll)

End Function

强大的word宏:㈣调整字符间距

Sub 加大字间距()'运行一次将选中文本字符间距加大0.1磅

字符间距0.1

End Sub

Sub 减小字间距()'运行一次将选中文本字符间距减小0.1磅

字符间距-0.1

End Sub

Function 字符间距(间距As Single)

Selection.Font.Spacing = Selection.Font.Spacing + 间距

If Selection.Font.Spacing = 0 Then MsgBox "字间距为标准值!"

End Function

宏演示视频:

/15032075/infocenter#!app=847&via=QZ.HashRefresh

相关文档
最新文档