我的工作表中单元格包含尾随空格。我尝试使用各种 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 数据库也使用它。“NULL”表现为“0”。
答案3
使用Trim()
函数。如果那也不起作用,请使用Val(Trim())
。