В настоящее время я работаю со столбцом данных (чисел), который соответствует набору значений, и мне было интересно, как я могу автоматически заменить данные / числа на правильное соответствующее значение? (предоставили картину того, что я имею в виду ниже) спасибо за вашу помощь!

Начальные данные

Конечный результат

1 ответ1

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

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