本文将利用Word中的录制宏来解决 复制粘贴网络上文字格式错乱的问题。

    本文宏代码取自 : 知乎 李文超,感谢他的提供。

Technorati 标签: Word宏 格式修正

    1. 创建Word宏

        新建一个word文件,点击 视图 ---> 宏 ---> 录制宏,出现如下的设置框。

       

        设置完后,点击宏-->结束录制,然后点击查宏,选中编辑框,弹出宏代码编辑页面,将 文章结尾处的宏代码复制到里面去,最终显示结果如下:

       

     2. 使用宏

        在使用时,新建一个空白word文件,然后,将网页上面的文字,随便复制一段文字过来,然后选择 视图---> 宏 ---> 运行,就可以格式化从网络上的文字格式。

        示例代码只是最简单的设置,用户可以根据自己的需要来定制化特殊的设置。

Sub formatInternetWord()
'Author:李文超
'网上的文章复制粘贴为我所用,你会发现很多文稿多出了很多空格、空行,
'有的是用手动换行符代替了段落标记,致使段首不能空两格显示。
'这些问题既影响美观又占用纸张空间(打印时),
'如果逐个删除那劳动量实在是太大了,
'本人在实际操作中一开始用的也是笨功夫,
'后来悟到完全可以录制宏来替换整理,省却诸多麻烦。
'将^l替换为为^P.软回车替换为硬回车 Selection.Find.ClearFormatting '清除查找框格式
Selection.Find.Replacement.ClearFormatting '清除替换框格式
With Selection.Find
.Text = "^l"
.Replacement.Text = "^p"
.Forward = True '向后搜索
.Wrap = wdFindContinue
.Format = False ' 不清除格式
.MatchCase = False ' 匹配大小写
.MatchWholeWord = False ' 整词匹配
.MatchByte = False ' 全角
.MatchWildcards = False '不勾选"使用通配符"
.MatchSoundsLike = False ' 不匹配 同音词
.MatchAllWordForms = False ' 不查找单词的所有形式
End With
Selection.Find.Execute Replace:=wdReplaceAll
'将^p^p替换为^p
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p^p"
.Replacement.Text = "^p"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
'将空格替换为正确的格式
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " "
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
'设置页面布局
With ActiveDocument.PageSetup
.Orientation = wdOrientLandscape '页面方向为横向
.TopMargin = CentimetersToPoints(1.27) '上边距
.BottomMargin = CentimetersToPoints(1.27) '下边距
.LeftMargin = CentimetersToPoints(1.27) '左边距
.RightMargin = CentimetersToPoints(1.27) '右边距
.Gutter = CentimetersToPoints(0) '装订线0cm
.HeaderDistance = CentimetersToPoints(1.5) '页眉
.FooterDistance = CentimetersToPoints(1.75) '页脚
.PageWidth = CentimetersToPoints(25) '纸张宽
.PageHeight = CentimetersToPoints(35.4) '纸张高
.SectionStart = wdSectionNewPage '节的起始位置:新建页
.OddAndEvenPagesHeaderFooter = False '不勾选"奇偶页不同"
.DifferentFirstPageHeaderFooter = False '不勾选"首页不同"
.VerticalAlignment = wdAlignVerticalTop '页面垂直对齐方式为"顶端对齐"
.SuppressEndnotes = False '不隐藏尾注
.MirrorMargins = False '不设置首页的内外边距
.BookFoldRevPrinting = False '不设置手动双面打印
.BookFoldPrintingSheets = 1 '默认打印份数为1
.GutterPos = wdGutterPosLeft '装订线位于左侧
.LayoutMode = wdLayoutModeLineGrid '版式模式为"只指定行网格"
End With
'设置段落
With ActiveDocument.Paragraphs
.CharacterUnitFirstLineIndent = 2
.Alignment = wdAlignParagraphLeft '居左对齐
.SpaceBefore = 0 '段前间距
.SpaceAfter = 0 '段后间距
.LineSpacingRule = wdLineSpace1pt '单倍行距,可以自定义数值
.WidowControl = -1 '孤行控制,可以控制tab键不必过长
.KeepWithNext = 0 '与下段同页
.KeepTogether = 0 '段中不分页
.PageBreakBefore = 0 '段前分页
End With
'删除所有超链接书签和连接
With ActiveDocument
Dim myLink As Hyperlink
Dim myBookmark As Bookmark
Dim myField As Field
For Each myLink In .Hyperlinks
'myLink.Delete '删除所有超链接
Next myLink
For Each myBookmark In .Bookmarks
myBookmark.Delete ''删除"链接"中的"书签"(灰色中括号标记)
Next myBookmark
For Each myField In .Fields
'myField.Unlink '删除所有烦人链接
Next myField
End With
ActiveDocument.Save End Sub

 

----------------------------------03-07更新--------------

在复制网页上的内容到 word中时,可以在复制时的粘贴选项中选择, ,无格式粘贴,也可以完成上述功能。

Word 录制宏解决粘贴网络上文字格式错乱的更多相关文章

  1. 第五十六篇、OC打开本地和网络上的word、ppt、excel、text等文件

    iOS打开本地和网络上的word.ppt.excel.text等文件 iOS开发过程中可能需要预览一些文件,这些文件的格式可能有word.ppt.excel等文件格式.那么系统提供两个类去预览这些文件 ...

  2. 安装PHP过程中,make步骤报错:(集合网络上各种解决方法)

    安装PHP过程中,make步骤报错:(集合网络上各种解决方法) (1)-liconv -o sapi/fpm/php-fpm /usr/bin/ld: cannot find -liconv coll ...

  3. widows10 安装1803 版本后不能访问网络上的机器解决方法

    安装Windows10 1803 版本后,发现网络上的机器好多不见了. 使用 ping  可以ping 通,但是访问网络共享提示下面错误. 这个原因是1803 中没有安装 SMB1.0 协议.因为 S ...

  4. 【转】word排版宏的使用

    原文: https://blog.csdn.net/bruce_shan/article/details/73302756 -------------------------------------- ...

  5. C#读取网络流,读取网络上的js文件

    写博客的目的就是让其他人少走弯路. C#读取网络上的流和js文件出现的问题 一开始看了今天博客园上的推荐文章,用C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),然 ...

  6. WORD自定义宏

    自定义快捷键 折叠所有标题 Word选项—自定义功能区—自定义键盘—不在功能区内的命令—ColllapseAllHeadings 展开所有标题 Word选项—自定义功能区—自定义键盘—不在功能区内的命 ...

  7. 【iOS开发-从网络上获取图片尺寸】

    实际开发过程中,容易碰到从网络上获取图片尺寸的场景,比如一个UIImageView要装载从网络上获取的图片,但要先设置其frame,此时又不知道图片尺寸,就要从网络上获取尺寸了.为了最好的用户体验,一 ...

  8. 在 Visio 中录制宏

    在“开发工具”选项卡上,单击“录制宏”.(如果您看不到“开发工具”选项卡,请参阅下面的“显示‘开发工具’选项卡”.) 在“宏名”框中,键入宏名称. 在“快捷键”框中,键入与 Ctrl 键一起使用可运行 ...

  9. JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(三),多线程断点下载

    一 前言 本篇博客是<JWebFileTrans(JDownload):一款可以从网络上下载文件的小程序>系列博客的第三篇,本篇博客的内容主要是在前两篇的基础上增加多线程的功能.简言之,本 ...

随机推荐

  1. png图片那点事

    PNG图片格式现在包含三种类型: 1.PNG8       256色PNG的别名 2.PNG24     全色PNG的别名 3.PNG32     全色PNG的别名 基本上PNG32就是PNG24,但 ...

  2. js 处理url中文参数 java端接收处理

    正常情况下当http请求中带有中文参数时,浏览器会自动对中文进行一次编码(按照当前页面的pageEncoding),java端容器会对接收到的参数自动进行一次转码,则request.getParame ...

  3. 词法分析器Demo

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Lexe ...

  4. 条件判断语句if

    一.简单if语句的格式 if 条件表达式 then 语句1 语句2 ...... fi 二.if else语句的格式 if 条件测试 then 语句块1 else 语句块2 fi 三.if elif ...

  5. 你应该知道的基础 Git 命令

    我们在早先一篇文章中已经快速介绍过 Vi 速查表了.在这篇文章里,我们将会介绍开始使用 Git 时所需要的基础命令. Git Git 是一个分布式版本控制系统,它被用在大量开源项目中.它是在 2005 ...

  6. LeetCode17 Letter Combinations of a Phone Number

    题意: Given a digit string, return all possible letter combinations that the number could represent. A ...

  7. c++ 设计模式3 (重构技法 Template Method)

    1. 重构 面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”指的是那些可以满足 “应对变化,提高复用”的设计. 设计模式的要点是“寻找变化点,然后在变化点处应用设计模式,从而更好地理解 ...

  8. 1.4.2 solr字段类型--(1.4.2.2)solr附带的字段类型

    1.4.2 solr字段类型 (1.4.2.1) 字段类型定义和字段类型属性. (1.4.2.2) solr附带的字段类型 (1.4.2.3) 使用货币和汇率 (1.4.2.4) 使用Dates(日期 ...

  9. 对C++/CLR的一些评价

    我以后要是再用这东西,我自砍双手

  10. 智能 RPC框架 (C++)

    RPC中文叫远程函数调用,它是一种通信方式,只是看起来像普通的函数调用. 它包括三个基本要素: 1:服务端注册相应的(服务)函数(用于调用方调用) 2:调用方通过函数调用的方式将一些信息和参数打包到消 ...