2016-12-27 13 views
1

フォーマットを維持しながら、指定されたセルの255文字以上の文字列を削除する方法はありますか?Excel VBA:255文字列のRange.Characters.Delete

例:

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")のためになる:

旋盤、CNC-プライマリ|インスペクションインプロセス1 | OV - Heat Treat0 |バリ取り1 | Lathe-CNC-Primary0 |ホーニング0 | Lathe-CNC-Primary0 |バリ取り1 |インスペクションインプロセス1 | OV - F.P.I0 |インスペクションインプロセス1 | OV - Nitride0 |インスペクションインプロセス1 |研削スルーフィード1 |インスペクションインプロセス0 | 0V - コーティング0 |検査Final0

おかげで、 ジョシュ

実際の目標は何

答えて

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 
    
+1

目標は、セルの書式ごとに文字維持しながら、特定の文字を削除することです。 'Value'を割り当てることは確かに[動作しません](http://stackoverflow.com/a/11331709/11683)。 – GSerg

+0

あなたは目標を得るために賢い!いずれにせよ、あなたが正しいと思うなら、OPは "置き換える"オプションを取ることができます – user3598756

+0

文字の書式ごとに、@Gsergが述べたとおりです。 255以上の文字列の文字を削除すると、実際には "1004"アプリケーションエラーが発生します。残念ながら、ReplaceまたはMid関数を実行した後は、文字ごとの書式が維持されていないように見えます。 –

関連する問題