2015-05-04 2 views
3

Я пытаюсь удалить часть строки. Например
mystring="site, site text, sales "Excel VBA- удалить часть строки

Я хочу, чтобы удалить 'сайт' от MyString. Мой требуется вывод «текст сайта, продажи»

Я использую эту строку кода:

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

, но я получаю "text, sales"

Я не знаю, как это сделать, и я d действительно оцените вашу помощь!

ответ

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

Вы также можете отправить в качестве параметра начальное положение, а затем несколько раз вы хотите заменить ... (по умолчанию -1)

+0

Для записи, следует параметры замены: 'Public Function Replace ( ByVal Expression As String, ByVal Найти Как String, ByVal Замена As String, ByVal Опция Start As Integer = 1, Необязательный ByVal Count As Integer = -1, Необязательный ByVal Сравнить В CompareMethod = CompareMethod.Binary ) Как String' –

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) 
1

Вы можете также пользователь VB в MID функции, как это:

Mystring=Mid(myString, 6) 

выход будет «текст на сайте, продажи»

Просто укажите количество символов, которые вы хотите удалить в номер части.

0

В моем случае я хотел удалить часть строк, которая была между «[» и «]». И следующий код работал отлично.

Так с исходной строки в колонке А (и раствор в колонке 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 
Смежные вопросы