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):一款可以从网络上下载文件的小程序>系列博客的第三篇,本篇博客的内容主要是在前两篇的基础上增加多线程的功能.简言之,本 ...
随机推荐
- Centos7安装杀毒软件ClamAV
Clam AntiVirus(ClamAV)是免费而且开放源代码的防毒软件,软件与病毒码的更新皆由社群免费发布.目前ClamAV主要是使用在Linux.FreeBSD等Unix-like系统架设的邮件 ...
- 基于linux2.6.38.8内核启动过程完全解析[一]
转载: ************************************************************************************************ ...
- jQuery layer[页面弹出框]
常见接口如下: 方法名 描述 $.layer({}) 核心接口,参数是一个对象,对象属性参见上述列表.诸如layer.alert()之类的为$.layer()的包装方法. layer.v 获取版本号. ...
- iOS 手势大全
1.Touch事件 //系统自动调用 //一个UITouch代表一根手指 按住option变成两根手指 //虽然是两个手指,但只执行一次触摸事件 - (void)touchesBegan:(NSSet ...
- php实现签到功能
首先我在数据库里建了两张表,一个是用户的积分表,一个是签到状态表,分来用来记录用户的积分数和先到状态 在用户签到状态表中我们有一个字段,last_sign_time,即上一次签到时间,每次可以签到的时 ...
- javascript中Math ceil(),floor(),round()三个函数的对比
Math.ceil()执行的是向上舍入 Math.floor()执行向下舍入 Math.round()执行标准舍入 一下是一些补充: ceil():将小数部分一律向整数部分进位. 如: Math.ce ...
- Pascal 语言中二维数组:矩阵问题
[题目]方阵填数:在一个 N*N的方阵中,填入 1,2..... N*N个数,并要求构成如下格式: 图例:10 11 12 1 9 16 13 2 8 ...
- highchairts柱状图显示数值并且带单位
$(target).highcharts({ chart: { type: 'bar' }, colors: [ "#1ab394" ], title: { text: title ...
- poj1330
Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24762 Accept ...
- 1166 矩阵取数游戏[区间dp+高精度]
1166 矩阵取数游戏 2007年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description [ ...