利用宏删除Word文档中多余的空行
利用宏删除Word文档中多余的空行
日常工作中在网上到一些文字材料,想要把文字拷贝下来,可是从网页上拷贝下来的文字在粘贴到文本编辑器上时,就会在段落与段落之间多出很多空行。若手动删除这些空行,既费时又费事。当然可以用替换的方法去删除,现在我要介绍的是用编写代码的解决方法,效率更高。
使用Word的宏
在Word中创建一个宏,取名为DBL。代码及注释如下:具体操作:WORD====工具-宏-VB工具-代码窗口:复制以下信息
Sub DBL()
i=1
Do
'从当前文档的顶端开始逐一选择文档的每一段文字
ActiveDocument.Paragraphs(i).Range.Select
If Trim(Selection.Text) = Chr(13) Then
'如果选择的段落里只有回车符和空格则删除此段
Selection.Delete
Else
'如果选择的段落非空,就将选择的指针移向下一段
Selection.MoveDown
i=i+1
End If
Loop Until i=ActiveDocument.Paragraphs.Count
End SubOK!
写好了宏程序后,可以把建好的宏拖到快捷工具栏上,做好后,如果需要从网页上拷贝文字到Word上编辑时,只要单击一次这个宏按钮,即可瞬间删除整篇文档里的空行了。
另外一种代码(可以显示出共删除了多少空行等)
Sub DelBlank()
Dim i As Paragraph, n As Integer暗恋的诗句
Application.ScreenUpdating = False
For Each i In ActiveDocument.Paragraphs
If Len(i.Range) = 1 Then
i.Range.Delete
n = n + 1
End If
李咏参加中国好声音Next
MsgBox "共删除空白段落" & n & "个"
Application.ScreenUpdating = True
End Sub
txt文本文件的编程方法:
使用网页脚本语言
批量删除word空行的方法2009-03-28 09:57方法一:对于硬回车:(就是在文本处理的时候,没到换行的时候按回车强制换行,显示的是一个深的回车键。)
  "编辑--替换" -查内容为"^p^p",替换成"^p"然后全部替换!
  对于软回车:(一般的情况是打字打到右边的边界会自动跳到下一行,上一行的行末有个浅的回车键,这个是软回车。)
  "编辑--替换" -查内容为"^l^l",替换成"^l"然后全部替换!
方法二:打开一个空白文档,进入“工具”菜单,选择“宏”,然后选择“宏”。在“宏名”栏中输入“删除空行”需要确保在下拉菜单中的“将宏保存在”选择“所有文档(Normal.dot)”,这将保证你能够在所有Wor
d文档中使用这个宏。如果你不选择这个选项,当你想要打开一个新的Word文档的时候,你就会看到一条屏幕安全信息,你将不能够使用这个宏。 单击“创建”创建以“删除空行”命名的宏,单击该宏,选择“编辑”进入vb编辑框。在框内出入以下程序:
Sub 删除空行()
Dim MyBar As CommandBarControl
On Error Resume Next
Application.CommandBars("Text").
Controls("粘贴文本并删除空行").Delete
Set MyBar = Application.CommandBars("Text").Controls.Add(Before:=4)
With MyBar
.Caption = "粘贴文本并删除空行"
.FaceId = 480
.OnAction = "PasteAndDel"
End With
End Sub
'----------------------
Sub PasteAndDel()
Dim StartRange As Long, EndRange As Long, MyRange As Range, OldEnd As Long
Dim i As Paragraph
On Error Resume Next
'判断剪贴板是否有内容
If Application.CommandBars.FindControl(ID:=22).Enabled = False Then Exit Sub
Application.ScreenUpdating = False
'原文档结束点位置
OldEnd = ActiveDocument.Content.End
With Selection
.Collapse Direction:=wdCollapseEnd      '折叠到选定位置的末端
StartRange = .Start      '获得一个位置
.Range.PasteSpecial DataType:=wdPasteText      '光标处选择性粘贴为文本格式
'获得粘贴后文本的末位置
EndRange = StartRange + ActiveDocument.Content.End - OldEnd
ActiveDocument.Range(StartRange, EndRange).Select      '选定该段文本
For Each i In .Paragraphs      '指定段落中循环
If Len(i.Range) = 1 Then i.Range.Delete      '如果为空行则删除
Next
.Copy      '重新复制,以便调用
End With
Application.ScreenUpdating = True
End Sub
  如果电脑上用的文字处理工具是金山WPS系列的字处理软件,而没有安装Word和UltraEdit等软件时,不妨试试借助一下微软的网页脚本语言(VBScript)来处理删除空行的问题。现在绝大部分的机器上装的操作系统都是Windows,一般办公室里的机器都可以执行。
  脚本程序要完成的任务不同于上面的Word宏。首先要把从网页上复制下来的文字粘贴到一个文本文件(以下简称A文件)里保存。脚本程序要做的事情是在程序执行时再创建一个文本文件(以下简称B文件),从A文件里逐行读取文字,并把非空行的文字内容写入到B文件里。这样,B文件里就没有空行了。
  新建一个文本文件,把文件的扩展名改为.vbs。在记事本里打开该文件并输入脚本代码,代码及注释如下:
  Const ForReading = 1, ForWriting = 2, TristateUseDefault = -2
  Dim fsoA, fA, tA, fsoB, fB, tB, s, dir
  '如果脚本程序和A文件在同一目录下,直接输入A文件的文件名和扩展名即可
  dir=inputbox("请输入源文件的路径或相对路径:")
  if dir<>"" then
  '初始化A文件的对象
  Set fsoA = CreateObject("Scripting.FileSystemObject")
  Set fA = fsoA.GetFile(dir)
  Set tA = fA.OpenAsTextStream(ForRe
永州旅游  ading, TristateUseDefault)
  '创建并初始化B文件的对象
  Set fsoB = CreateObject("Scripting.FileSystemObject")
  fsoB.CreateTextFile("_"+di
r)
  Set fB = fsoB.GetFile("_"+dir)
  Set tB = fB.OpenAsTextStream(ForWr把悲伤留给自己
  iting, TristateUseDefault)
  '逐行读A文件并把非空行写入B文件
  while not tA.AtEndOfStream
  s=tA.ReadLine
  if trim(s)<>"" then tB.WriteLine s
  wend
  '关闭文件对象
  tB.Close
  tA.Close日本樱岛火山
  end if
  脚本文件代码写好之后,保存,退出记事本。下面就可以用写好的脚本文件来删除空行了。用鼠标双击脚本文件即可执行程序。当程序执行完成之后就会自动产生一个在A文件名前加了一个下划线作为文件名的新文件,打开看看吧,里面的空行早被一扫而空。
要统一这些文檔格式,如果用逐篇、逐项重新设置的方法来处理的话,上百篇论文真不知要进行多少烦琐重复的劳动。想用轻松便捷的方法吗?那就跟我一起用自定义宏按钮的方法来解决吧。
定制 统一格式 按钮
1. 在Word XP中依次单击“工具/宏(M)/录制新宏…”,在“录制宏”对话框中,给将要录制的宏取一个名字,如“Macro1”(如图1)。
2. 单击[工具(T)]按钮,在弹出的对话框中选择“命令”选项卡。
3. 在“命令”选项卡中,“类别”栏选择“宏”,“命令”栏选择要录制的宏命令“Normal.NewMacros. Macro1”,并将它拖动到工具栏的合适位置。
4. 右击工具栏上的“Normal.NewMacros. Macro1”,在弹出的快捷菜单中选择“命名(N)”,并将“命名”后面框中的“Normal.NewMacros. Macro1”改名为“统一格式”作为工具按钮的名称(如图2)。
5. 单击[关闭]按钮,完成宏按钮的建立。
录制宏
建好按钮后,Word会自动弹出录制宏工具图示,进入录制宏状态。接着可做以下几步操作:
1. 删除段首空格
(1)按“Ctrl+Home”键,将光标移到段首,按回车键在段首插入一个段落标记。
(2)单击“编辑/替换”,打开“替换”对话框,设定“查内容”为“^p ”(“^p”为段落标记,后面跟一个中文空格),“替换为”设为“^p”,“搜索范围”为“全部”,然后单击[全部替换]按钮。替换结束后,再次单击此按钮,这样可删除段首的连续两个中文空格。
口碑最好的减肥茶
(3)将“查内容”改为“^p ”(“^p”后跟一个英文空格),“替换为”和“搜索范围”不变,然后单击四次[全部替换]按钮,这样可删除段首的连续四个英文空格。替换结束后单击[关闭]按钮退出对话框。
2. 设置首行缩进两字符,行距调整为单倍行距
  (1)按“Ctrl+A”选定全文。
  (2)单击“格式/段落”,在弹出的对话框中设定“首行缩进”两字符,行距为“单倍行距”,然后单击[确定]退出对话框。
  3. 设置字体
  (1)单击“格式/字
体”,在弹出的字体对话框中设置宋体、小四号,再单击[确定]退出对话框。
  (2)按“Ctrl+Home”键将光标移到段首,再按“Delete”键删除段首的一个空行。
  (3)单击“格式/段落”,在弹出的对话框中设定“首行缩进”为“无”,“对齐方式”为“居中”,然后单击[确定]退出对话框。
  (4)按“Shift+End”键选中第一行,然后单击“格式/字体”,在弹出的字体对话框中设置黑体、三号,再单击[确定]退出对话框。
  (5)按“Home”键取消选定。
4. 设置页面
  单击“檔/页面设置”,在“页面设置”对话框中设定纸张大小为“19.5×27厘米”(即16开纸),上下左右边界分别设为“2.5”、“2.5”、“3”、“2”厘米,然后单击[确定]关闭对话框。
  在完成以上操作后,单击[停止录制宏]按钮结束宏的录制,这样全部工作就完成了。
  现在,你随便打开一个文檔,然后单击[统一格式]按钮,格式不一的文檔会自动转为你预设的格式(如段首还有空格,可再次单击[统一格式]按钮去除)。用这种方法,我们还可轻松处理从网页上复制到的文檔呢,是不是很方便?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。