избавиться от пробелов независимо от того, где в строке - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь удалить пробел, независимо от того, в каком положении он находится - внутри строки. Я должен написать код в VBA. Ниже то, что я написал до сих пор. Когда я использую chr (32) или пробел (1), кажется, что VBA не подходит, как я написал. Другими словами, я хочу передать строку в cleanFunction: FB 10-0073 и вернуть его: FB100073. Обратите внимание, нет пробелов.

Const SpecialCharacters As String = "!,@,#,$,%,^,&,*,(,),{,[,],},?,-" 'chr(32),chr(95),chr(160),chr(47),chr(45)"  'modify as needed
Private Const EXPC As String = "EXP_C"

Public Function cleanString(ByVal text As String) As String
    Dim newString As String
    Dim char As Variant
    For Each char In Split(SpecialCharacters, ",")
        newString = Trim(Replace(text, char, ""))
    Next
    cleanString = newString
End Function

1 Ответ

0 голосов
/ 15 января 2019

Избавиться от персонажей

1,5 Проблемы

  • У вас нет пробела в варианте (возможно, опечатка).
  • Вы выполняете трим-замену всегда в исходном тексте, так что если в последнем случае символ будет последним (в вашем случае "-"), остальные будут заменены не будет.

Код

Option Explicit

Function cleanString(ByVal CleanText As String) As String
    Const SpecialCharacters As String = _
            "!,@,#,$,%,^,&,*,(,),{,[,],},?,-,_,/, " ' chr(160)
    Dim newString As String
    Dim char As Variant
    Dim i As Integer
    newString = CleanText
    char = Split(SpecialCharacters, ",")
    For i = 0 To UBound(char)
        newString = Replace(newString, char(i), "")
    Next
    cleanString = newString
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...