У меня есть ячейка, которая имеет смешанные цифры и буквы (напр. AA12CC45WR) и они случайные.

На другом листе у меня есть таблица, которая имеет эквивалент для каждой буквы, как (ячейки A1 , B1)

A=1
C=25
W=66
R=77 

для букв ABC до Z

Решение должно быть 11122525456677

Как мне сгенерировать функцию для замены всех букв с заданными числами на другом листе?

1 ответ1

1

Вот функция, которая будет выполнять декодирование. Поместите это в модуль и при необходимости обновите ссылку на диапазон. Если ячейка A1 имеет исходное значение "code", введите формулу: =Decode(A1) в другой ячейке, чтобы получить "декодированное" значение.

Public Function Decode(Code As String) As String
    Dim iIdx As Integer
    Dim sChar As String
    Dim sResult As String
    For iIdx = 1 To Len(Code)
        sChar = UCase$(Mid$(Code, iIdx, 1))
        If Asc(sChar) >= 65 And Asc(sChar) <= 90 Then
            sChar = WorksheetFunction.VLookup(sChar, Worksheets("Sheet2").Range("A1:B26"), 2, False)
        End If
        sResult = sResult & sChar
    Next iIdx
    Decode = sResult
End Function

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