в Excel, как я могу автоматически изменить содержимое ячейки, если оно равно определенному значению

0

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

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

введите описание изображения здесь

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

введите описание изображения здесь

lacrosse1991
источник
как автоматически? Вы хотите формулу или VBA решение? Вы можете использовать функцию vlookup в соседнем столбце B, если J и K переключаются. и затем вставьте результаты в то, что находится в A, или функцию индекса. Или вы искали способ автоматического изменения при вводе числа в A?
Дата
@datatoo Здравствуйте, я просто ищу способ автоматического изменения при вводе числа в A
lacrosse1991
поэтому каждый раз, когда вы вводите число в A, оно должно найти соответствующее значение.
datatoo
@datatoo да точно
lacrosse1991

Ответы:

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
datatoo
источник