1

我知道如果我检查 Font 的删除线属性,例如,如果所有单元格都是删除线,range("C1").Font.Strikethrough我将有一个如果不是,但在这样的单元格中检查它: TrueFalse

文本部分删除线

属性的结果是Null

现在,知道了这一点,有没有办法识别内容单元格的一部分是否是“删除线”,然后解析它以便我可以用其他文本替换?

我知道我可以检查每个字符(查看此示例)如果它具有活动属性,但是,我怎么知道文本的哪一部分是删除线,然后用另一个文本替换该文本?

4

1 回答 1

2

所以我在考虑如何做到这一点,我想出了以下功能。

Function strkThr(t As Range) As String
Dim i As Long
Dim y As Boolean
Dim temp As String

y = False
temp = ""
For i = 1 To Len(t.Value)
    If Not t.Characters(i, 1).Font.Strikethrough = y Then
        temp = temp & "|"
        If y Then
            y = False
        Else
            y = True
        End If
    End If
    If Not y Then
        temp = temp & Mid(t, i, 1)
    End If
Next

strkThr = temp
End Function


Sub replace()
Dim cel As Range
For Each cel In Range("A1:A100")
    cel.Value = strkThr(cel)
    cel.Value = replace(cel.Value, "||", YOURVALUE)
Next cel
End Sub

该函数用“||”替换每组删除线。然后在子中您将替换“||” 与想要的价值。

于 2015-11-12T00:17:42.293 回答