1

ワークシート関数としての TRIM 関数と VBA 関数としての TRIM 関数が異なる結果を返すことはわかっています。

  • ワークシート関数は、単語間の単一のスペースを除いて、テキスト文字列からすべてのスペースを削除します
  • VBA 関数は先頭と末尾のスペースのみを削除します。

カスタム VBA 関数を使用せずに、ワークシート関数を使用して VBA の動作をエミュレートする方法はありますか?

4

3 に答える 3

5

ワークシート関数のみを使用して、A1 のテキスト文字列に対してこれを試すことができます。

=REPLACE(LEFT(A1,MATCH(2,1/(MID(A1,MMULT(ROW(INDIRECT("1:"&LEN(A1))),1),1)<>" "))),1,FIND(LEFT(TRIM(A1)),A1)-1,"")

文字列反転ワークシート関数がないため、スペースではない最後の文字の位置を見つけるのは簡単ではありません。

VBA を使用したくない場合は、オプションでData|Text to Columnsを使用する方がはるかに簡単です。

  1. 固定幅
  2. 改行なし
  3. 目的地: B1

これにより、先頭と末尾のスペースも削除されます。

于 2012-06-11T10:07:10.520 に答える
2

ワークシート関数は、単語間の単一のスペースを除いて、テキスト文字列からすべてのスペースを削除します

いいえ、それは完全に真実ではありません:)ワークシートTRIM関数は改行なしのスペース文字(&nbsp;)を削除しません。改行しないスペース文字を削除するには、別の関数を呼び出しますCLEAN()

TrimVBAでワークシート関数を使用したい場合は、次のように使用できます

Application.WorksheetFunction.Trim(Range("A1").Value)

Excelワークシートで使用できます=TRIM()

于 2012-06-11T08:53:40.360 に答える
0

ワークシートで参照できる関数をVBAで記述できます。

例えば:

Public Function MyTrim(text As String) As String    
    MyTrim = Trim(text)    
End Function

次に、ワークシートで、トリミングするテキストがセルA1にあると想定します。

=MyTrim(A1)
于 2012-06-11T08:58:19.783 に答える