0

すべての行の不要なスペースを削除するマクロがあります。ただし、標準のトリムの代わりに、Trim(substitute) 関数を使用したいと思います。標準のトリム関数が機能しない場合があるためです。トリムとトリム(代用)の違いは

トリム:

=トリム(A2)

トリム (代用):

=TRIM(SUBSTITUTE(A4,CHAR(160),CHAR(32)))

トリム行のコードを次のように変更しようとしました。

MyCell.Value = Trim(SUBSTITUTE(MyCell.Value,CHAR(160),CHAR(32)))

しかし、残念ながらそうではありません。誰かがコードを調整して機能させるのを手伝ってくれませんか?

マイトリムマクロ

Sub GOOD_CT_TrimBText()
Cells.Select
Dim MyCell As Range
On Error Resume Next
    Selection.Cells.SpecialCells(xlCellTypeConstants, 23).Select
    For Each MyCell In Selection.Cells
        MyCell.Value = Trim(MyCell.Value)
    Next
On Error GoTo 0
End Sub
4

3 に答える 3

5

どのような理由で を使用したいのか、よくわかりませんSUBSTITUTE。文字列内のすべてのスペースを消去したい場合は、これを試すことができます:

MyCell.Value = Replace(MyCell.Value, " ", vbNullString)

(ちなみに、「選択」は使用しないでください。マクロの速度が低下するだけで、ほとんどの場合不要です)

編集:今、私はあなたが何を意味するかを知っています。@KazJaw が言ったように、次のように変更できます。

MyCell.Value = Trim(Replace(MyCell.Value, Chr(160), Chr(32)))

私はそれをテストしましたが、うまくいきました。

于 2013-06-25T08:07:11.510 に答える
0
TRIM(SUBSTITUTE(I8,CHAR(160),CHAR(32)))*1 
于 2014-03-13T04:09:26.397 に答える