Сопоставьте значение из таблицы и напечатайте результаты в столбце - PullRequest
0 голосов
/ 28 октября 2009

Я хотел бы создать программу Excel VBA, чтобы найти все значения совпадений из таблицы и распечатать результаты в столбце ... Я пытался использовать vlookup, но только дает мне первое местоположение, которое находит ... и я хотел бы все находки.

вот пример: мой стол начинается с ячейки A2

  • столбец A (число)
  • 0084
  • 0084
  • 0085
  • 0085
  • 0086
  • 0087

  • столбец B (местоположение)

  • 12AC5
  • 16AC5
  • 02AC5
  • 06AC5
  • 01DC5
  • 11DC5

в столбце D я вставляю значения, которые я ищу, там местоположение ..... в столбце F выдаст мне все найденное местоположение, которое соответствует моему запросу ... в возрастающем или любом порядке

например, я ищу расположение 2 чисел:

  • столбец D (я вставляю число, которое я вижу, что местоположение
  • 0084
  • 0087

Я ожидаю увидеть результаты:

  • столбец F (найденное местоположение)
  • 12ac5
  • 12bd5
  • 16ac5

Любая помощь с этим была бы очень признательна ..

Ура, JFFC Excel VBA

enter code here

1 Ответ

0 голосов
/ 30 октября 2009

Требуется уточнение. Вы:

Желая найти несколько значений (в столбце A), вернуть все соответствующие значения (в столбце B) в столбец F?

Примером этого является:

A, B, D, F
1, loc1,1, LOC1
1, loc2,2, LOC2
2, loc3, loc3
3, loc4,,
3, loc5,,
4, loc6,

Показывает, что если вы выполните поиск 1 и 2 (в столбце D), вы вернетесь к Loc1, loc2 и loc3, потому что все эти местоположения соответствуют номерам 1 и 2?

Если это не то, что вы пытаетесь сделать, тогда я в замешательстве

Макрос для достижения этой цели:

Sub FindLocations()

Dim ValueCell As Range
Dim SearchCell As Range
Dim ResultCounter As Integer
Dim ValueCol, LocCol, SearchCol, ResultCol As Integer

ValueCol = 1 'Look for the values in this column'
LocCol = 2 'Locations are in this column'
SearchCol = 4 'The search values are in this column'
ResultCol = 6 'Spit out the results in this column'

ResultCounter = 2

For Each ValueCell In Range(Cells(2, ValueCol), Cells(ActiveSheet.UsedRange.Rows.Count, ValueCol))

    For Each SearchCell In Range(Cells(2, SearchCol), Cells(ActiveSheet.UsedRange.Rows.Count, SearchCol))
        If SearchCell.Value = ValueCell.Value Then
            Cells(ResultCounter, ResultCol).Value = Cells(ValueCell.Row, LocCol).Value
            ResultCounter = ResultCounter + 1
            Exit For
        End If
    Next
Next
End Sub

Вставьте это на экран Excel VBA (Alt + F11) и запустите его (или свяжите с кнопкой). Если вы хотите выполнить поиск, щелкните по нему

Результаты этого выглядят так: Пример Excel http://img97.imageshack.us/img97/9310/excelexample.jpg

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