末尾に空白を含むセルを含むワークシートがあります。さまざまな VBA メソッドを使用してこれらの空白を削除しようとしましたが、どれも成功しませんでした。空白をコピーして"207.6100 "
メモ帳に貼り付けると、0 が含まれている"0 "
ことがわかりました。これを理解するのを手伝ってくれる人はいますか?
答え1
「クリーンアップ」したいセルを選択し、次の小さなマクロを実行します。
Sub KleanCell()
Dim r As Range, CH As String, v As String
Dim v2 As String
For Each r In Selection
v = r.Text
CH = ""
For i = 1 To Len(v)
v2 = Mid(v, i, 1)
If IsNumeric(v2) Or v2 = "." Then
CH = CH & v2
End If
Next i
r.Clear
r.Value = CDbl(CH)
Next r
End Sub
編集#1:
セルに実際に何が含まれているかを確認するには、セルをクリックして次のマクロを実行します。
Sub WhatIsInThere()
Dim L As Long, v As String
Dim i As Long, msg As String
v = ActiveCell.Text
L = Len(v)
msg = L & vbCrLf & vbCrLf
For i = 1 To L
msg = msg & i & vbTab & Mid(v, i, 1) & vbTab & Asc(Mid(v, i, 1)) & vbCrLf
Next i
MsgBox msg
End Sub
答え2
セルの値に表示されている「0」は、実際の数値の後に埋め込まれており、MS Excelの「ヌルこれは、多くのデータベース システムで使用されるフィラー「ブラック ホール」です。Oracle Database でも使用されています。「NULL」は「0」として現れます。
答え3
関数を使用しますTrim()
。それでも機能しない場合は、 を使用しますVal(Trim())
。