Excel VBA: 批量删除带删除线的文本
需求的故事是这样的....
在开发过程中, 我们会使用excel写各式各样的文档, 通常这些文档都是从一个Base修改而来的.
为了便于其他人review, 在做成这些文档的时候, 作成者会使用不同的颜色标记出我们所修改的内容.
当然我们也会使用删除线标记出产出的内容.
由此而来的问题便是, 在最终版的时候, 我们需要将这些被标记为删除线的部分, 真的从我们这里删除.
在理想的情况下, 一个单元格, 要么全是删除的内容, 要么全是保留的内容, 这样的话, 对付这些删除线是很方便的.
然而现实并非如此, 在上千个单元格中, 通常是部分被删除, 部分被保留, 部分被修改.
?
于是, 这个vba脚本的功能便是:
将选择区域中, 标记为删除线的文本, 批量删掉.
?
在下面的这个连接上, 找到了这段代码.
Need to remove text with strikethrough - Excel 2007
转帖如下:
Sub RemoveStrikeThruText() Dim X As Long Dim C As Range For Each C In Selection For X = Len(C.Value) To 1 Step -1 If C.Characters(X, 1).Font.Strikethrough Then C.Characters(X, 1).Delete End If Next C.Value = Application.WorksheetFunction.Trim(C.Value) NextEnd Sub
?
说明
1. trim的那行代码, 可以不要, 他会合并多余的空格.
2. "单元格的格式有删除线, 但是单元格的内容是由公式计算而来", 这种情况脚本会报错,
??? 也许将公式过滤掉是个不错的主意, 但我目前使用这种错误提示我:"注意, 我们还有一个Sheet中, 还有一处有删除线."
?
?
下面的连接是类似的内容.
Macro to find and delete strikethrough
Need to remove text with strikethrough - Excel 2007
Finding strikethrough text and deleting
?
?
?
?
1 楼 wjason 2011-01-18 判断Excel单元格中格式