
В настоящее время я работаю со столбцом данных (чисел), который соответствует набору значений, и мне интересно, как я могу автоматически заменить данные/числа правильным соответствующим значением? (ниже я предоставил изображение того, что я имею в виду) Спасибо за вашу помощь!
Начальные данные
Конечный результат
решение1
В событии изменения рабочего листа вы можете сделать что-то вроде этого. Предполагается, что столбец, в который вы делаете запись, — это A, а макет ваших подстановок — в K&J, как в вашем примере. Вы можете настроить диапазоны по своему усмотрению.
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