Ответ 1
Ну вот:
Dim s As String
s = "Emily has wild flowers. They are red and blue."
Dim indexOfThey As Integer
indexOfThey = InStr(1, s, "They")
Dim finalString As String
finalString = Right(s, Len(s) - indexOfThey + 1)
Я пытаюсь удалить содержимое строки до определенного слова, содержащегося в строке. Например
"Emily has wild flowers. They are red and blue."
Я бы хотел использовать VBA, чтобы заменить это на
"They are red and blue."
т.е. удалить весь контент до слова "Они". Я не знаю содержание строки и количество содержащихся в ней символов.
Я не уверен, как это сделать, и я бы очень признателен за вашу помощь!
Ну вот:
Dim s As String
s = "Emily has wild flowers. They are red and blue."
Dim indexOfThey As Integer
indexOfThey = InStr(1, s, "They")
Dim finalString As String
finalString = Right(s, Len(s) - indexOfThey + 1)
Простой пример удаления всего текста перед значением в строке.
Sub Foo()
Dim strOrig As String
Dim strReplace As String
strOrig = "The Quick brown fox jumped over the lazy dogs"
strReplace = "jumped"
MsgBox (DropTextBefore(strOrig, strReplace))
End Sub
Public Function DropTextBefore(strOrigin As String, strFind As String)
Dim strOut As String
Dim intFindPosition As Integer
'case insensitive search
'could made it so that case sensitivity is a parameter but this gets the idea across.
If strOrigin <> "" And strFind <> "" Then
intFindPosition = InStr(UCase(strOrigin), UCase(strFind))
strOut = Right(strOrigin, Len(strOrigin) - (intFindPosition + Len(strFind) - 1))
Else
strOut = "Error Empty Parameter in function call was encountered."
End If
DropTextBefore = strOut
End Function
Это отлично подействовало на меня:
Sub remove_until()
Dim i, lrowA, remChar As Long
Dim mString As String
lrowA = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lrowA
mString = Cells(i, 1).Value
If InStr(mString, "They") > 0 Then
remChar = Len(mString) - InStr(mString, "They") + 1
Cells(i, 2).Value = Left(mString, Len(mString) - remChar)
End If
Next
End Sub
Если слово фиксировано, например "Они" в приведенном выше примере, вы можете просто сделать
в поле "Поиск". Звездочка * является подстановочным символом, который можно назвать как-либо до или после (если добавлено в конце) слово.
Осторожно: будьте осторожны, когда у вас есть повторяющиеся слова в одной ячейке.