Удалить «The» в начале названия книги

У меня есть столбец названий книг, и я хотел бы запустить сценарий 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». Надеюсь, я объяснил это достаточно хорошо. Я почти могу придумать то, что хочу, в словах, но не знаю синтаксиса.

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
2
0
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий
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 & "")

Другие вопросы по теме