【问题标题】:Removing Strikethrough text and copying to a new column is missing the first dot删除删除线文本并复制到新列缺少第一个点
【发布时间】:2020-05-15 10:03:40
【问题描述】:

您好,我正在使用此代码删除单元格中被删除的任何文本并将其复制到新的列单元格中。它删除了删除文本,但是当将文本复制到新单元格时,它错过了第一个点在 1. 之后,即

1.0900 - 1800     its copying as   10900 - 1800
2.0830 - 1700                      2.0830 - 1700 

For Each cel In rng
For i = 1 To Len(cel.Value)
If cel.Characters(i, 1).Font.Strikethrough = False Then
cel.Offset(0, -1).Value = cel.Offset(0, -1).Value & cel.Characters(i, 1).Text

End If
Next

知道为什么它缺少点吗?它只在每个单元格的第一行执行。

【问题讨论】:

    标签: excel vba strikethrough


    【解决方案1】:

    问题是您一个接一个地写入字符,如果您将1. 写入单元格,它会自动减少为1

    For Each cel In rng
        Dim OutputText As String
        OutputText = vbNullString 'initialize
    
        For i = 1 To Len(cel.Value)
            If cel.Characters(i, 1).Font.Strikethrough = False Then
                OutputText = OutputText & cel.Characters(i, 1).Text
            End If
        Next i
    
        cel.Offset(0, -1).Value = OutputText
    Next cel
    

    所以将所有字符放在一个变量中,最后一次写入会更快。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-08
    • 2021-07-25
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 2021-03-26
    相关资源
    最近更新 更多