Word中删除双删除线的内容和删除表格中的空白行
这周四开会,发现部门的需求文档里,都是没用的双删除线,完全没有用途,几百页的文档里充斥了这样的垃圾,让我看着很不爽,所以就写了VBA程序来把这些内容删除了,试了试还不错。代码如下:
If ActiveDocument.ReadOnly Then
IsReadOnly = True
Else
IsReadOnly = False
End If
End Function
Sub 删除双删除线的内容()Sub 删除双删除线的内容()
If IsReadOnly = True Then
MsgBox "此文档是只读的,请修改其只读属性"
Exit Sub
End If
Dim r As Range
Dim count As Integer '总共删除的字符数
count = 0
If Selection.Characters.count <> 1 Then '如果选择了某段文字
For Each r In Selection.Characters ’对于每一个选择的字符
If r.Font.DoubleStrikeThrough <> 0 Then '如果是双删除线
r.Select
Selection.ClearFormatting '清楚样式
r.Delete '删除
count = count + 1 '记录删除的字符加1
End If
Next
MsgBox "共删除带有双删除线的字符:" & count & "个"
Else
If MsgBox("要进行的操作是删除整篇文档中的双删除线,是否继续?", vbYesNo, "删除提示") _
= VbMsgBoxResult.vbYes Then
For Each r In ActiveDocument.Characters ‘删除整个文档
If r.Font.DoubleStrikeThrough <> 0 Then
r.Select
Selection.ClearFormatting
r.Delete
count = count + 1
End If
Next
MsgBox "共删除带有双删除线的字符:" & count & "个"
End If
End If
End Sub
当然,这是花费很多时间,我测试的文档300+页,花了10分钟,没办法,慢就慢些吧,删除了双删除线的内容后,发现文档的页数没有减少,才发现,只是删除了内容,换行符和表格里的空行还留着。
所以又写了一个程序,删除了表格中的空行
On Error Resume Next
If IsReadOnly = True Then
MsgBox "此文档是只读的,请修改其只读属性"
Exit Sub
End If
Dim t As Table
Dim rr As Range
Dim r As Row
Dim i As Long
Dim j As Long
For Each t In ActiveDocument.Tables '遍历整个文档中的表格
With t.Range.Find '替换表格中换行符
.Text = "^p"
.Forward = True
.Replacement.Text = "" '替换为空格
.Execute Replace:=wdReplaceAll
End With
For i = 1 To t.Rows.count '遍历表格中的每一个cell
For j = 1 To t.Columns.count
t.Cell(i, j).Range.Select
Selection.ClearFormatting
If t.Cell(i, j).Range.Characters.count <> 1 Then ’如果cell中的字符大于1,退出列循环
Exit For
End If
Next
If (j - 1) = t.Columns.count Then '如果遍历了所有的列cell,那个这行为空行
t.Cell(i, 1).Select
Selection.Rows.Delete '删除空行
End If
Next
Next
ActiveDocument.Save '保存
End Sub
可能大家看这段代码,有些别扭,但是我刚开始的想法也不是这么做,但是由于Word的种种限制,我只有用了这种办法,还算可以,就是有些慢。
对于如何把这段VBA打成包,集成到Word的按钮栏里,我还是不知道如何做,希望可以得到大家的帮助。
我的想法是打包成一个exe文件,双击安装就好了。
Word中删除双删除线的内容和删除表格中的空白行相关推荐
- java使用poi.xssf 写入内容到excel表格中 和 读取 表格里面的数据
一.java使用poi.xssf 写入内容到excel表格中 public class TestExcel {//创建一个excel工作簿public static String outputFile ...
- excel vba 把内容放到剪贴板,以及把剪贴板的内容粘贴到表格中
excel vba 把内容放到剪贴板,以及把剪贴板的内容粘贴到表格中 如果你从其他地方复制了文字.图片等内容,比如从网页上.然后要粘贴到表格中. 只需要一句就好了: ActiveSheet.Paste ...
- linux中sed -i命令修改文件内容、在文件中插入行、删除文件中删除行
文章目录 0.sed -i与sed 1.修改文件内容 2.在文件中插入行 3.在文件中删除行 4.使用find查找文件,并用 | xargs传输文件名给sed命令 0.sed -i与sed sed - ...
- java解析word 波浪线,word页面边框双波浪线
word如何在文本最后添加边框线或者双波浪线~ 可以教你一个简单易懂的:1.在你文本外面画一个表格,word画表格:表格--绘制表格2.你可以在工具栏上找到边框颜色,线形,磅数等,如果你需要曲线就选择 ...
- linux中可以使用以下命令查看文件内容,在Linux服务器中使用命令行中查看文件内容...
通常查看文件内容的方法是简单地在文本编辑器中打开它.然而,为了更快速地查看,事实上,也为了在shell脚本中实现自动化,使用文本编辑器的方法并不适合. 在Linux中,有很多命令可以解决这个问题:在命 ...
- SAP ABAP屏幕(Dialog)开发中,获取文本框的内容并且存到数据库中。
续更SAP相关内容. 这次讲一下在ABAP屏幕开发中怎样获取文本框的值. 在C# Winform开发中,我们直接 textBox.Text就可以取到文本框的值,但在ABAP中要繁琐一些. 好了,操作. ...
- 查询oracle数据库的表格数据类型,excel表格中如何查询数据库数据类型-我想把excel表格中的数据导入oracle数据库中,想在......
在excel表里,什么是:字段.记录.数据类型.多工... declare @t table(id numeric(18,2)) insert into @t SELECT col1 FROM ...
- 计算机怎么在表格里打勾,excel中怎么输入打勾符号在哪里,excel表格中怎么输入打勾符号...
在使用excel制作文档时,我们可以使用该软件制作印章,下面我们就来看看在excel中是如何制作漂亮的印章的吧. 操作方法 第1:打开excel这款软件我们在插入里找到形状选项, 点击该选项在其下拉菜 ...
- 怎么删除mysql的所有文件内容_mysql删除全部数据库
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
最新文章
- mysql表误删回复_mysql 找回误删表的数据方法(必看)
- 1.1 为什么选择序列模型-深度学习第五课《序列模型》-Stanford吴恩达教授
- vb编程的好帮手--资源文件
- 计算机与材料化学应用背景介绍,计算机在材料工程中的应用.ppt
- Nexus3.x.x上传第三方jar
- nodejs 实现文件拷贝
- UPS开始尝试“货车+无人机”的投递方式,不必再担心快递员离职了
- mysql企业版安装_mysql企业版怎么安装图解
- 王者回归! Adobe Creative Cloud 打造云时代的创意体验
- Cookie、Session 简述
- 怎么找到电脑的打印机
- 服务器右键文件夹不显示共享,右键不出现共享菜单 文件或文件夹不能共享怎么办?...
- 【Solidity】7. 部件 - 深入理解Solidity
- 洛谷P1725 琪露诺
- HTTP协议入门 状态码大全
- 使用Google colab的GPU运行resnet
- 什么品牌的蓝牙耳机音质好?四款高音质蓝牙耳机推荐
- 每日分享正能量一段话45句
- 求某学生8门课的平均分
- Word文档如何设置成不可编辑的模式?
热门文章
- CUDA:在NPP中实现流域规划实例
- 微信理财通和余额宝哪个好
- 一包烟尝试解决docx安装失败,并尝试运行标号、全文格式、生成表格自动化处理(2)
- c语言 do while 素数,1. 编写程序,求30以内的所有素数之和.用do while做
- 什么是版本控制 SVN subversion
- 在校生如何攻略系统集成项目管理工程师【62,62】
- RT-Thread 隐藏的宝藏之ringbuff
- April 28th Tuesday (四月 二十八日 火曜日)
- Color Coherence Vector
- Flutter应用名称语言国际化