У меня есть рабочие таблицы с ячейками, содержащими конечные пробелы. Я пробовал использовать различные методы 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())
.