У меня есть рабочие листы с клетками, связанными с конечными пробелами. Я пытался использовать различные методы VBA, чтобы убрать эти пробелы. Однако ни один не был успешным. После проверки, если я скопирую пробел "207.6100 " и вставлю его в блокнот, в нем будет 0 "0 " может кто-нибудь помочь мне понять это?

3 ответа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()) .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .