使用“替换”仅替换字符串的一小部分

时间:2019-03-20 14:58:34

标签: excel vba

我正在从文本文件中读取数据,并且试图将其格式化以匹配单元格的“已定义名称”。定义的名称为89NL_10ETH_A,字符串为89NL 10ETH A,但后跟一串空格。我使用Replace()将空格转换为“ _”,但末尾的所有空格都转换为下划线。记住您Trim()由于固定长度而无法工作,我该如何缩小固定长度的空间?

这是我目前的做法

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

3 个答案:

答案 0 :(得分:2)

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 :(得分:1)

如@AndyG所述,您可以将Replace()与Trim()一起使用。

您可以将其与文本字符串一起使用

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

或者,带有单元格值

getProduct = Replace(Trim(Range("A1").Value), " ", "_")
MsgBox getProduct 

答案 2 :(得分:0)

这种方式可以正常工作:

Sub Test()

    Dim STR As String, arrSTR

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


End Sub