
Actualmente estoy trabajando con una columna de datos (números) que corresponde a un conjunto de valores y me preguntaba cómo podría reemplazar automáticamente los datos/números con el valor correspondiente correcto. (He proporcionado una imagen de lo que quiero decir a continuación) ¡gracias por su ayuda!
Datos iniciales
Resultado final
Respuesta1
En el evento de cambio de hoja de trabajo, puede hacer algo como esto. Se supone que la columna en la que está realizando la entrada es A y el diseño de sus búsquedas está en K&J según su ejemplo. Puedes ajustar los rangos como quieras.
Private Sub Worksheet_Change(ByVal Target As Range)
'should check you are doing entry in column A first
If Target.Column = 1 Then
Application.EnableEvents = False
Dim R1 As Range
Dim R2 As Range
Dim rngStart As Range
Dim varFind As Variant
Dim InRange As Boolean
Set R1 = Range(Target.Address)
Set R2 = Range("J:J")
Set rngStart = Range("J1")
If R2.Find(What:=Target, After:=rngStart, LookIn:=xlValues, LookAt:=xlWhole _
, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) Is Nothing Then
Application.EnableEvents = True
Set R1 = Nothing
Set R2 = Nothing
Exit Sub
Else
varFind = R2.Find(What:=Target, After:=rngStart, LookIn:=xlValues, LookAt:=xlWhole _
, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Address
Set varFind = Range(varFind)
R1.Value = varFind.Offset(0, -1)
Application.EnableEvents = True
Set R1 = Nothing
Set R2 = Nothing
Set rngStart = Nothing
Set varFind = Nothing
End If
Else
Exit Sub
End If
End Sub