Как найти столбец на основе значения ячейки и добавить значение соседнего столбца в список? - PullRequest
0 голосов
/ 24 января 2019

Я хотел бы найти столбец на основе ячейки и добавить значения соседних столбцов в список.

Пример: Данные на листе выкладываются так:

**enter image description here**

Когда я перехожу на другой лист и выбираю Генри или Бен из раскрывающегося списка, в соседней ячейке раскрываются все IDS, связанные с именами в столбце A.

Пример 2:

enter image description here

enter image description here

1 Ответ

0 голосов
/ 25 января 2019

Предположим, что для этого ответа мы используем лист 1. Структура листа 1:

enter image description here

Option Explicit

    Private Sub Worksheet_Change(ByVal Target As Range)

        Dim Lastrow As Long
        Dim cell As Range, rng As Range, rngResults As Range
        Dim strSearch As String, strResults As String

        With ThisWorkbook.Worksheets("Sheet1")

            If Not Intersect(Target, .Range("D2")) Is Nothing Then

                strSearch = Target.Value

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

                Set rng = .Range(.Cells(2, 1), .Cells(Lastrow, 1))
                Set rngResults = .Range("E2")

                For Each cell In rng

                    If strSearch = cell.Value Then

                        If IsEmpty(strResults) Then
                            strResults = cell.Offset(0, 1).Value
                            Debug.Print strResults
                        Else
                            strResults = strResults & "," & cell.Offset(0, 1).Value
                            Debug.Print strResults

                        End If

                    End If

                Next

                    With rngResults.Validation
                        .Delete
                        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
                            Formula1:=strResults
                    End With

            End If

        End With

    End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...