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)
    Next
End 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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值