Excel VBA:Range.Characters.Delete,255个字符串

时间:2016-12-27 13:07:05

标签: excel vba

如何在保持格式化的同时从给定单元格中的255+字符串中删除字符?

示例:

Range("A1").value = "Lathe-CNC-Primary1 | Inspection-In Process1 | OV - Heat Treat0 | Deburring1 | Lathe-CNC-Primary0 | Honing0 | Lathe-CNC-Primary0 | Deburring1 | Inspection-In Process1 | OV - F.P.I0 | Inspection-In Process1 | OV - Nitride0 | Inspection-In Process1 | Grinding Thru Feed1 | Inspection-In Process0 | 0V - Coating0 | Inspection-Final0"



Range("A1").Characters(Start:=1, Length:=17).font.bold = True
Range("A1").Characters(Start:=17, Length:=1).delete 'Does Nothing

我使用此字符串中的1和0(来自SQL语句)来格式化它附加的单词,然后删除1或0。

范围(“A1”)中字符串的所需结果:

  

Lathe-CNC-Primary |检验 - 处理1 | OV - Heat Treat0 |去毛刺1 | Lathe-CNC-Primary0 | Honing0 | Lathe-CNC-Primary0 |去毛刺1 |检验 - 处理1 | OV - F.P.I0 |检验 - 处理1 | OV - Nitride0 |检验 - 处理1 |磨削Feed1 |检查 - 在Process0 | 0V - 涂层0 |检查-Final0

谢谢, 约什

1 个答案:

答案 0 :(得分:0)

不确定你的实际目标是什么

你可以

  • 格式化后使用Replace()方法:

    With Range("A1")
        Replace what:="1 |",replacement:=" |", LookAT:=xlPart
        Replace what:="0 |",replacement:=" |", LookAT:=xlPart
    End With
    
  • 使用Mid()功能:

    With Range("A1")
        .Value = Mid(.Value, Start:=1, Length:=17) & Mid(.Value, Start:=18) '<--| "deletes" character in position 18
    End With