【问题标题】:Excel VBA: Delete strikethrough characters in a cellExcel VBA:删除单元格中的删除线字符
【发布时间】:2015-01-26 10:50:51
【问题描述】:

我有大约 1000 行数据。一些单元格由删除线和普通字符组成。我只想删除那些是删除线的字符,并在这些单元格中保留另一个非删除线字符。 单元格的其余部分也应保持不变。

单元格中的示例:

"334(删除线) 124"

代码应将单元格值更改为:

“124”

不删除整个单元格。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    Characters 删除时,从右到左循环更容易:

    Sub Demo()
        Dim rng As Range, cl As Range
        Dim i As Long
    
        Set rng = [A1:A3] ' Get range of interest
    
        For Each cl In rng.Cells
        For i = Len(cl.Value) To 1 Step -1
            If cl.Characters(i, 1).Font.Strikethrough Then
                cl.Characters(i, 1).Delete
            End If
        Next i, cl
    
    End Sub
    

    【讨论】:

      【解决方案2】:

      试试这个

      Sub Macro1()
      Dim oCell As Range, i%, z%
      For Each oCell In Range("A1:A6")
          z = Len(oCell.Value)
          i = 1
          While z <> 0
              If oCell.Characters(Start:=i, Length:=1).Font.Strikethrough = True Then
                  oCell.Characters(Start:=i, Length:=1).Caption = ""
                  i = i - 1
              End If
              i = i + 1
              z = z - 1
          Wend
      Next
      End Sub
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-20
        相关资源
        最近更新 更多