Excel VBA-删除部分字符串

时间:2015-05-04 07:07:50

标签: excel vba excel-vba

我正在尝试删除部分字符串。例如
string.Format("AED {0}", value);

我想删除' 网站'来自mystring。我要求的输出是"网站文字,销售"

我使用这行代码:

mystring="site, site text, sales "

但我得到了s1 = Replace(mystring, "site", "")

我不知道该怎么做,我非常感谢你的帮助!

4 个答案:

答案 0 :(得分:8)

replace("site, site text, sales ","site, ","",1,1)

您还可以将起始位置作为参数发送,然后发送您要替换的次数...(默认值为-1)

答案 1 :(得分:2)

在我的情况下,我想删除“[”和“]”之间的字符串部分。以下代码效果很好。

所以使用A列中的原始字符串(以及B列中的解决方案):

Sub remove_in_string()

Dim i, lrowA, remChar As Long
Dim mString As String

lrowA = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To lrowA

mString = Cells(i, 1).Value

    If InStr(mString, "[") > 0 Then

        remChar = InStr(mString, "]") - InStr(mString, "[") + 1

        Cells(i, 2).Value = Left(mString, Len(mString) - remChar)

    ElseIf InStr(mString, "[") = 0 Then

        Cells(i, 2).Value = Cells(i, 1).Value

    End If

Next

End Sub

答案 2 :(得分:1)

这里有很多不同的选择:

只需添加搜索字符串中的昏迷即可替换,并使用Trim删除空格:

s1 = Trim(Replace(mystring, "site,", ""))

指定您希望更换字符串的时间(第一个" 1"是替换次数的第二个)

s1 = Trim(Replace(mystring, "site,", "",1,1))

或者是硬/坏的方式,在第一次出现后分解你的字符串然后重新组合以获得结果......

TempStart = Left(mystring, InStr(1, mystring, "site") + Len(mystring) + 1)
TempEnd = Replace(mystring, TempStart, "")
TempStart = Replace(TempStart, "site", "")
mystring = CStr(TempStart & TempEnd)

答案 3 :(得分:1)

您也可以像这样使用VB的MID功能:

Mystring=Mid(myString, 6) 

输出将是“网站文字,销售”

只需在数字部分中指定要删除的字符数。