2016-06-13 27 views
1

空白や改行なしの空白、改行、改行などの空白を含むセルがいくつかあるExcelスプレッドシートがあります。私はこれらの空白を取り除きたい。 Googleの検索では、これはVBAでのみ行うことができます。 VBA Trim関数は、すべての種類の空白を削除するわけではなく、セルの中央から削除することもできます。 VBAのTrim関数のMSDNページは、.NETのString.Trimメソッドを参照しています。しかし、最初のリンクで示唆されているようにVBAからString.Trimを呼び出す方法がわかりません。 Excel VBAからString.Trimメソッドを呼び出すにはどうすればよいですか?Excelのセルから先頭と末尾の空白を削除する

編集:明確にするために、セルの中央に空白(キャリッジリターンと改行を含む)を保持したいと思います。私は、文字をセルの最初と最後から削除したいだけです。

+0

細胞(1、1)=( "テストテストテスト")トリム動作します...しかし、ああ-haのあなたも、キャリッジリターンと改行をしたい...私はトリムとは思いませんそれはVBAで行います。 Chr(10)+ Chr(13)+ Chr(13)+ Replace(Replace)を使用すると、 "テストテスト")、Chr(10)、 ""、Chr(13)、 "") –

+0

また、https://stackoverflow.com/questions/2964769/trim-cells-using-vba-in-excelを参照してください。非印刷文字をすべて削除する方法、またはhttps://support.office.com/en-us/article/Remove-spaces-and-nonprinting-characters-from-text-023f3a08-3d56-49e4-bf0c-fe5303222c9d (CLEANワークシート関数を参照してください) –

+0

"Microsoft VBScript Regular Expressions 5.5"リファレンスを追加し、RegExを使用してテキストをクリーンアップしてみてください。 ? –

答えて

1

あなたはVBAを使用して移動することなくExcelでこれを実行したい場合は:あなたはセルA1をきれいにしたいと仮定すると、

=TRIM(CLEAN(A1)) 

。私のテストでは、これはすべてのタブ、キャリッジリターン、ラインフィードを削除するだけでなく、複数のスペースを単一のものに変換します。

+0

入力いただきありがとうございます。しかし、私はすべてのキャリッジリターンと改行を取り除きたいとは思わない。私は、キャリッジリターンとラインフィードをセルの最初と最後から削除したいだけです。 – Brian

+0

生データが一貫している場合は、一連のネストされたif文を作成するか、段階的に削除することができます。より複雑な状況では、データをExcelに取り込む前にデータを消去するほうがよい場合があります。いくつかのサンプルを投稿できますか? – xarxziux

+0

データは元々Excelで入力されました。ほとんどのセルには、キャリッジリターンや改行で区切られた2つの段落が含まれています。私の問題は、Excelで情報を入力した人が頻繁にテキストの段落の前またはテキストの段落の後に空白を入れてしまうことです。私が望む機能は、.NETのString.Trimメソッドによって行われるものです。 – Brian

0

私は同じ問題を抱えていましたが、私はこのコードとその完璧な作業が見つかりました。列名から先頭と末尾のスペースを削除します。

foreach (DataColumn c in d.Columns) 
       c.ColumnName = c.ColumnName.Trim(); 

乾杯

関連する問題