У меня есть рабочие листы с клетками, связанными с конечными пробелами. Я пытался использовать различные методы VBA, чтобы убрать эти пробелы. Однако ни один не был успешным. После проверки, если я скопирую пробел "207.6100 "
и вставлю его в блокнот, в нем будет 0 "0 "
может кто-нибудь помочь мне понять это?
3 ответа
3
Выберите ячейки, которые вы хотите «очистить» и запустите этот небольшой макрос:
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
EDIT # 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
0
"0", который вы видите в значениях своих ячеек, дополненных после фактического числа, является артефактом MS Excel, который называется « NULL ». Это наполнитель "Черная дыра", который используется во многих системах баз данных; даже база данных Oracle использует его. "NULL" проявляется в "0".
-2
Используйте функцию Trim()
.
Если даже это не работает, используйте Val(Trim())
.