Как выполнить автозаполнение на основе значений в нескольких ячейках

#excel #vba #autofill

#excel #vba #автозаполнение

Вопрос:

Первый вопрос, надеюсь, я все делаю правильно…

У меня есть ряд данных в ячейках A: C, давайте возьмем, к примеру:

  • Ячейка A2 = Apple
  • Ячейка B2 = Банан
  • Ячейка C3 = Tomato

В ячейке D3 я бы хотел, чтобы она автоматически заполнялась как ‘Fruit’. Если какие-либо ячейки из A: C не входят в число выделенных, верните пробел. Цель состоит в том, чтобы иметь выпадающие списки для ячеек A: C и возвращать определенные значения на основе их комбинации. Как бы это легко было сделать, используя VBA вместо формул?

Я могу сделать это для отдельных ячеек, но никогда для нескольких.

Комментарии:

1. Добро пожаловать в SO. Вы отметили этот вопрос с помощью VBA, поэтому, пожалуйста, опубликуйте код, который вы пробовали.

Ответ №1:

В приведенном ниже коде я использую шаг 2, который проверяет значения каждые две строки. вы можете удалить это, если хотите протестировать каждую строку.

 Option Explicit

Sub test()

    Dim LastRow As Long, Row As Long

    With ThisWorkbook.Worksheets("Sheet1")

        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row

        For Row = 2 To LastRow Step 2

            If .Range("A" amp; Row).Value = "Apple" Or .Range("A" amp; Row).Value = "Banana" Or .Range("A" amp; Row).Value = "Tomato" Then
                If .Range("B" amp; Row).Value = "Apple" Or .Range("B" amp; Row).Value = "Banana" Or .Range("B" amp; Row).Value = "Tomato" Then
                    If .Range("C" amp; Row   1).Value = "Apple" Or .Range("C" amp; Row   1).Value = "Banana" Or .Range("C" amp; Row   1).Value = "Tomato" Then
                        .Range("D" amp; Row   1).Value = "Fruits"
                    End If
                Else
                    Exit For
                End If
            Else
                Exit For
            End If

        Next Row

    End With

End Sub