Word 录制宏解决粘贴网络上文字格式错乱
本文将利用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 录制宏解决粘贴网络上文字格式错乱的更多相关文章
- 第五十六篇、OC打开本地和网络上的word、ppt、excel、text等文件
iOS打开本地和网络上的word.ppt.excel.text等文件 iOS开发过程中可能需要预览一些文件,这些文件的格式可能有word.ppt.excel等文件格式.那么系统提供两个类去预览这些文件 ...
- 安装PHP过程中,make步骤报错:(集合网络上各种解决方法)
安装PHP过程中,make步骤报错:(集合网络上各种解决方法) (1)-liconv -o sapi/fpm/php-fpm /usr/bin/ld: cannot find -liconv coll ...
- widows10 安装1803 版本后不能访问网络上的机器解决方法
安装Windows10 1803 版本后,发现网络上的机器好多不见了. 使用 ping 可以ping 通,但是访问网络共享提示下面错误. 这个原因是1803 中没有安装 SMB1.0 协议.因为 S ...
- 【转】word排版宏的使用
原文: https://blog.csdn.net/bruce_shan/article/details/73302756 -------------------------------------- ...
- C#读取网络流,读取网络上的js文件
写博客的目的就是让其他人少走弯路. C#读取网络上的流和js文件出现的问题 一开始看了今天博客园上的推荐文章,用C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),然 ...
- WORD自定义宏
自定义快捷键 折叠所有标题 Word选项—自定义功能区—自定义键盘—不在功能区内的命令—ColllapseAllHeadings 展开所有标题 Word选项—自定义功能区—自定义键盘—不在功能区内的命 ...
- 【iOS开发-从网络上获取图片尺寸】
实际开发过程中,容易碰到从网络上获取图片尺寸的场景,比如一个UIImageView要装载从网络上获取的图片,但要先设置其frame,此时又不知道图片尺寸,就要从网络上获取尺寸了.为了最好的用户体验,一 ...
- 在 Visio 中录制宏
在“开发工具”选项卡上,单击“录制宏”.(如果您看不到“开发工具”选项卡,请参阅下面的“显示‘开发工具’选项卡”.) 在“宏名”框中,键入宏名称. 在“快捷键”框中,键入与 Ctrl 键一起使用可运行 ...
- JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(三),多线程断点下载
一 前言 本篇博客是<JWebFileTrans(JDownload):一款可以从网络上下载文件的小程序>系列博客的第三篇,本篇博客的内容主要是在前两篇的基础上增加多线程的功能.简言之,本 ...
随机推荐
- careercup-高等难度 18.5
18.5 有个内含单词的超大文本文件,给定任意两个单词,找出在这个文件中这两个单词的最短距离(也即相隔几个单词).有办法在O(1)时间里完成搜索操作吗?解法的空间复杂度如何? 解法1:我们假设单词wo ...
- 通过百度地图API将百度坐标转换成GPS经纬度
百度地图API链接:http://developer.baidu.com/map/index.php?title=webapi/guide/changeposition 百度地图API中,有GPS坐标 ...
- springMVC与struts2的区别
1. 机制:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同. 2. 性能:spring会稍微比struts快.spring mvc是基于方法的设 ...
- 如何使用nodejs发邮件
昨天就开始想使用nodemailer来实现一个发送邮件的功能,不过发现了很多个坑,网上给的资料也很杂很乱,所以决定写一篇真正能用的来帮助大家减少弯路 首先,我们先来看下代码,如上所示. 步骤: 1.下 ...
- C#中的预处理器指令详解
这篇文章主要介绍了C#中的预处理器指令详解,本文讲解了#define 和 #undef.#if.#elif.#else和#endif.#warning和#error.#region和#endregio ...
- WPF 之 资源(Resource)
1.什么叫WPF的资源(Resource)? 资源是保存在可执行文件中的一种不可执行数据.在WPF的资源中,几乎可以包含图像.字符串等所有的任意CLR对象,只要对象有一个默认的构造函数和独立的属性. ...
- ScriptTransformer
ScriptTransformer可能由java支持的JavaScript语言或者其他脚本语言写成的转换器.只支持Java 6以上版本. 例1: <dataConfig> <scri ...
- Handler发送消息
Handler发送消息小结 字数283 阅读210 评论0 喜欢1 obtainMessage()得到一个Message对象. 创建一个Message然后发送是这么写的: Message msg = ...
- cocos2d-x lua 使用ListView
cocos2d-x lua 使用ListView version: cocos2d-x 3.6 本文主要讲述:使用Cocos Studio创建ListView,和列表项的模板,代码中通过模板创建列表的 ...
- 漂亮的自适应宽度的多色彩CSS图片按钮
一.素材 二.效果 三.CSS *{padding:0;margin:0} /*----------------------------------- 自适应宽度图片按钮 ...