Использование Replace, чтобы заменить только небольшую часть строки - PullRequest
1 голос
/ 20 марта 2019

Я читаю данные из текстового файла и пытаюсь отформатировать их в соответствии с определенным именем для ячейки. Определенное имя - 89NL_10ETH_A, а строка - 89NL 10ETH A, но с несколькими пробелами после него. Я использовал Replace() для преобразования пробелов в "_", но все пробелы в конце преобразуются в подчеркивания. Как я могу обрезать пробелы фиксированной длины, помните, что Trim() не работал из-за фиксированной длины?

Вот как я сейчас это делаю

getProduct = Replace(Replace(Mid(Ln, 40, 24), "#", ""), "%", "")

Ответы [ 3 ]

2 голосов
/ 20 марта 2019

Просто Trim перед вами Replace:

Sub TrimTest()

    Dim InputString As String
    InputString = "  89NL 10ETH A    "

    Debug.Print Replace$(Trim$(InputString), " ", "_")

End Sub

Trim удаляет пробелы из " 89NL 10ETH A " в начале и в конце "89NL 10ETH A", поэтому промежутки между ними можно заменить подчеркиванием"89NL_10ETH_A".

1 голос
/ 20 марта 2019

Как указано @AndyG, вы можете использовать Replace () с Trim ().

Вы можете использовать его с текстовой строкой

getProduct = Replace(Trim("89NL 10ETH A           "), " ", "_")
MsgBox getProduct 

Или со значением ячейки

getProduct = Replace(Trim(Range("A1").Value), " ", "_")
MsgBox getProduct 
0 голосов
/ 20 марта 2019

Этот способ отлично работает:

Sub Test()

    Dim STR As String, arrSTR

    STR = "89NL 10ETH A    "
    arrSTR = Split(Application.Trim(STR), " ")
    MsgBox Join(arrSTR, "_")


End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...