У меня есть основной стол с пациентами и больницами. В больницах есть опечатки, и в некоторых из них нет статьи, как, например, следующие.

Name       Hospital
----------------------------
Fulano     Hospital Princesa
Mengano    Princesa
Futano     La PRincesa
Octano     Paz
Nonano     La Paz
Zipi       PAz

Мне нужно поменять все ячейки "Принцесса" на "Больница La Princesa" и все ячейки "Ла-Пас" на "Больница Ла-Пас".

Каждый раз, когда я исправляю базу данных, я вручную выполняю операции "найти и заменить" (« inc » -> "Больница La Princesa" и « az » -> "Больница La Paz").

Поскольку в основной таблице так много больниц (около 15) и так много строк, я хочу знать, есть ли простой способ сделать это (возможно, с помощью vlookup, может быть, с VBA)

1 ответ1

1

Попробуй это:


Option Explicit

Public Sub FixHospitalNames()

    Dim ws As Worksheet, itm As Variant, i As Long
    Dim hOld As Variant, hNew As Variant, extras As Variant

    extras = Split("hospital,la, ", ",") 'removes any extras (splits string by ",")

    hOld = Split("princesa paz")         'replace these 2 items with the 2 items from hNew
    hNew = Split("Hospital La Princesa,Hospital La Paz", ",")

    With Sheet1.UsedRange.Columns(2).Offset(1)  'Update Sheet and Column as needed

        For Each itm In extras
            .Replace What:=itm, Replacement:=vbNullString, LookAt:=xlPart, MatchCase:=False
        Next

        For i = 0 To UBound(hOld)
            .Replace What:=hOld(i), Replacement:=hNew(i), LookAt:=xlPart, MatchCase:=False
        Next

    End With
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .