У меня есть столбец названий книг, и я хотел бы запустить сценарий VBA, который удалит слово «The» из начала названия и оставит все остальные экземпляры «The» в покое. Пример: За пределами пролома.
Я нашел этот код:
Sub MyReplaceMacro()
Dim lastRow As Long
Dim myRange As Range
Dim remove1 As String
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set myRange = Range("A2:A" & lastRow)
myRange.Replace What: = "The ", Replacement: = "", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Но он удаляет все случаи употребления слова «The» в заголовках.
Я знаю, что вы также можете использовать LEFT, но я не знаю, как мне сказать, что я хочу удалить только первые четыре цифры, если они «The». Надеюсь, я объяснил это достаточно хорошо. Я почти могу придумать то, что хочу, в словах, но не знаю синтаксиса.
Sub RemoveLeadingTheAndCapitalize()
Dim lastRow As Long
Dim myRange As Range
Dim cell As Range
Dim title As String
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set myRange = Range("A2:A" & lastRow)
For Each cell In myRange
title = cell.Value
' Check if the title starts with "The "
If Left(title, 4) = "The " Then
' Remove "The " and capitalize the first letter of the new title
title = Mid(title, 5)
cell.Value = UCase(Left(title, 1)) & Mid(title, 2)
End If
Next cell
End Sub
Используя формулу:
FIND
чувствителен к региструA1:A3
на A1:INDEX(A:A, COUNTA(A:A))
, чтобы автоматически настроить диапазон.=IF(IFERROR(FIND("The ",A1:A3) = 1,FALSE),REPLACE(A1:A3, 1, 4, ""), A1:A3 & "")