2015-01-26 4 views
0

У меня около 1000 строк данных. Некоторые ячейки состоят из символов Strikethrough и normal. Я хотел бы удалить только те символы, которые являются Strikethrough и сохраняют другой символ без строкой в ​​этих ячейках. Остальная часть ячейки также должна оставаться нетронутой.Excel VBA: удалить зачеркнутые символы в ячейке

Пример в клетке:

"334 (просачивание) 124"

Код должен изменить значение ячейки для:

"124"

, не удаляя всю ячейку ,

ответ

4

При удалении от 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 
4

попробовать это

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 
Смежные вопросы