2016-09-14 29 views
0

スプレッドシートのテキストをフォームテキストボックスに挿入すると、テキストに余分な文字が表示されます。VBAテキストボックスの非表示文字

テキストボックスの内容をスプレッドシートセルの元のテキストと並んでセルに配置しました。元のテキストとテキストボックステキストの両方でLEN()関数を実行すると、テキストボックステキストは25、元のテキストは24と表示されます。

私の質問はなぜテキストが異なるのですか?私はこの余分なキャラクターが何であるか把握できません。
テキストは、2行がCTLLFで区切られています。私はまた、Trim()機能も使用しようとしました。

誰もこれを理解しましたか?フォームのテキストボックスに見えない文字が追加された場合、2つのテキストをどのように比較して一致するのでしょうか?

以下の最初の行は、AおよびBセルのLEN()関数です。
2番目の行はスプレッドシートの元のセルの値で、2番目の行は同じ値ですが、フォーム上のテキストボックスに入れてからスプレッドシートに出力します。

enter image description here

+1

どのように「テキストボックスの内容を配置するのですか?テキストを転送するために使用しているコードを投稿できますか? – Comintern

答えて

0

あなたがCODE機能を使用することができ、それが何であるか、文字コードを見つけるために端末と非トグルWrap Text

にフォントを変更、非印字可能な文字のほとんどを表示するには:

:非印字可能なASCII文字を削除するには
= Code(Mid(A2, 6, 1)) 

は、あなたがCLEAN機能を使用することができますスペースでちょうど改行文字を置き換えるために210

= Clean(A2) 

= SUBSTITUTE(A2, CHAR(10), " ") 

Remove spaces and nonprinting characters from text

+0

シート上のトリックはきれいですが、コード内でどのようにしたらいいですか?それはわかった。 :) WorksheetFunction.Clean() – user3490906

1

Excelは、細胞内line break characterとしてvbLf使用しています。 vbCr文字は改行に使用されず、willはボックスとして表示されます(古いExcels)またはスペースとして表示されます(新しいExcels)。

テキストをExcelセルに配置する場合は、vbCrLfを最初にvbLfに置き換えます。

+0

少なくともExcel 2013では、クリップボードから 'vbCrLf'をセルに貼り付けると、Excelはクリップボードから取り除かれるので' vbCr'を削除します。セル値を直接指定すると(Range( "A1")、Value = "A"&vbCrLf& "B" ')、それは削除されません。 – Comintern

+0

どうすればいいですか? – user3490906

+0

私はまた、これらの "_x000D_" – user3490906

0

私はこの問題を解決しました。 私はワークシート関数を使用しています WorksheetFunction.Clean() これは機能し、何もする必要はありません。 入力いただきありがとうございます。 :)

関連する問題