我有一个 Word 文件,其中包含数百条通过“插入 > 形状 > 线条”绘制的水平线,该文档是使用早期版本的 MS Word(可能是 2000)创建的。(目前我正在使用 word 2016)
我想一次删除所有这些行,但我无法选择每一行并点击删除数百行,因为我还有数百个文档。
有没有办法一次性从整个文档中选择并删除这些行?有任何解决方案吗?
感谢你的支持!
编辑:这是文件的链接测试水平线删除
答案1
看来我之前的回答中的代码没有将早期版本的 Word 中创建的水平线视为形状。所以它首先不会进入循环,所以删除这些线是没有问题的。但是我建议另一种解决方案。请尝试一下。但是请先备份您的文档。
首先通过 Office 2013/2016 版本保存此文档,将其转换为最新的 docx 或 docm 格式。请勿在兼容模式下工作,否则以下建议的选项可能不可用。
- 在主页功能区选项卡上转到查找 --> 高级查找
- 落下特别的并选择图形
- 查找文本框应包含的内容^g
- 转到“替换”,不输入任何内容,然后点击“替换”(逐个替换)或“全部替换”以一次性清除所有内容。
注意 - 这甚至可能取代任何其他图形。因此,在实施之前,请小心并先在您的文档上进行测试。
答案2
Sub 这在 Word 2007 中适用于通过边框>水平线插入的水平线,并且不会删除其他图形:
Sub DelHorizontalLines()
' deletes lines inserted by borders>horizontal line
Dim INLINE_SHAPE As InlineShape
For Each INLINE_SHAPE In ActiveDocument.InlineShapes 'OR Selection.InlineShapes
With INLINE_SHAPE
If INLINE_SHAPE.Type = wdInlineShapeHorizontalLine Then
INLINE_SHAPE.Delete
End If
End With
Next
End Sub
如果找不到您的线条,请删除并重新输入 =,然后在下拉框中找到正确的形状类型。
答案3
在包含 CTRL+A 然后 CTRL+C 行的文档中
打开新的 Word 文档
右键单击空白处 > 粘贴选项 > 仅保留文本
答案4
您可以探索下面提到的 VBA 代码来从您的 Word 文档中删除行。
首先将文档以最新的 Word 格式保存为 .docm(启用宏的 Word Doc)。
打开 DOS,按 ALT + F11 进入 VBA 编辑器。从插入菜单中,插入一个模块。将以下子程序代码粘贴到其中
Sub DelLines()
Dim H_Line As Shape
For Each H_Line In ActiveDocument.Shapes
If H_Line.Type = msoLine Then
H_Line.Delete
End If
Next H_Line
End Sub
保存文档。在主文档中按 ALT + F8 并运行此宏。
请注意 - 宏在我的 Word 2013 上产生了一些不可预测的结果。它删除了除一行之外的所有行。重新运行宏会清除待处理的行。其次,宏似乎无法区分线和箭头。所以它也删除了箭头。它没有触及其他对象,如插入的图片或矩形。这是通过选择If H_Line.Type = msoLine Then
部分代码来尝试的。
因此,在尝试任何操作之前,请备份您的原始文档。此外,我不太确定在 Word 2000 中创建的旧文档如何响应此代码(如果代码兼容)。试试看。