Excel VBA – удалить часть строки

Вопрос:Я пытаюсь удалить часть строки. Например, mystring="site, site text, sales " Я хочу удалить " сайт" из mystring. Мой требуемый результат: "текст сайта, продажи Я использую эту строку кода: s1 = Replace(mystring, "site", "") но я получаю "text, sales" Я не уверен, как это сделать, и я очень благодарен за вашу помощь! Лучший ответ: replace("site,

Вопрос:

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

Я хочу удалить “ сайт” из mystring. Мой требуемый результат: “текст сайта, продажи

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

s1 = Replace(mystring, «site», «»)

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

Я не уверен, как это сделать, и я очень благодарен за вашу помощь!

Лучший ответ:replace(«site, site text, sales «,»site, «,»»,1,1)

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

Ответ №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) Ответ №2

Вы также можете использовать функцию VB MID для пользователя следующим образом:

Mystring=Mid(myString, 6)

вывод будет “текста сайта, продаж

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

Ответ №3

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

Итак, с исходной строкой в ​​столбце 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

Оцените статью
Добавить комментарий