Você pode configurar uma planilha ou algumas colunas para traduzir cada letra para um "Nome personalizado" e, em seguida, consultá-las dessa maneira.
Mas vou dar alguns exemplos de como fazer isso sem ter os nomes em nenhuma célula.
Exemplo 1
Basta fazer o loop de todas as linhas e especificar cada letra e o nome para o qual ela deve mudar.
Sub change()
Dim i As Integer, r As Integer, c As String
c = "E"
r = Cells(Rows.Count, c).End(xlUp).Row
For i = 1 To r
Select Case UCase(Cells(i, c).Value)
Case "A"
Cells(i, c).Value = "Custom1"
Case "B"
Cells(i, c).Value = "Custom2"
Case "C"
Cells(i, c).Value = "Custom3"
Case "D"
Cells(i, c).Value = "Custom4"
Case "E"
Cells(i, c).Value = "Custom5"
Case "F"
Cells(i, c).Value = "Custom6"
Case "G"
Cells(i, c).Value = "Custom7"
Case "H"
Cells(i, c).Value = "Custom8"
Case "I"
Cells(i, c).Value = "Custom9"
Case "J"
Cells(i, c).Value = "Custom10" 'And so on
End Select
Next i
End Sub
Para facilitar o acesso, o nome da coluna (o número também funciona) é especificado pela variável c
.
Isso só funcionará em correspondências exatas e ignorará qualquer outra coisa.
Não faz distinção entre maiúsculas e minúsculas (graças ao UCase), lembre-se de especificar a letra em case
como maiúscula, ou ela não funcionará.
Case "A" 'Will work
Case "a" 'Won't work
Isso pode se transformar em uma lista bem longa, então uma maneira diferente de fazer isso é:
Exemplo 2
Sub changeArray()
Dim i As Integer, r As Integer, c As String
Dim Product
Product = Array("Custom1-A", "CustomB", "Custom3", "CustomD", , , , "Custom8", , , , , "Custom13", , , , , , , "Custom20", , , , , , "Custom25-Z")
c = "E"
r = Cells(Rows.Count, c).End(xlUp).Row
For i = 1 To r
Select Case UCase(Cells(i, c).Value)
Case "A" To "Z"
Cells(i, c).Value = Product(Asc(UCase(Mid(Cells(i, c).Value, 1, 1))) - 65)
End Select
Next i
End Sub
A base deste código é a mesma. Ainda percorre a coluna especificada pela variável c
. Mas se comporta de maneira bem diferente.
Esse código pega a primeira letra na coluna e, se for a letra a-z, ela mudará a célula para o nome personalizado especificado pela matriz.
Não faz distinção entre maiúsculas e minúsculas e ignorará qualquer coisa, exceto a primeira letra. Então, "A" e "Another1" serão tratados da mesma forma.