FindNext – возврат нескольких совпадений (с небольшой модификацией)

Отлично быть частью этого форума. Хорошо, поэтому моя проблема заключается в следующем:

У меня есть 2 файла Excel:
Один из них – это главный файл, который имеет список всех уникальных серверов, а другой – файл базы данных, на котором есть приложения, сопоставленные этим серверам. Обратите внимание, что в файле базы данных записи сервера не уникальны (поскольку один и тот же сервер может принимать более одного приложения).

Проблема в том, что я должен теперь «найти», где каждый сервер в главном файле находится в файле базы данных и возвращает соответствующее имя приложения. Поскольку на сервере может быть несколько приложений, я хотел бы вернуть все имена приложений в одной и той же строке (в соседних столбцах).

Пример:
Если имя сервера ServerA в главном, и есть 3 приложения (A, B и C), которые сопоставлены с этим во втором файле, мой главный файл должен теперь выглядеть так после скрипта:

Сервер A: ABC

Кажется, что мой код возвращает до двух совпадений. Это не выходит за рамки этого, и я подумал об этом в течение довольно долгого времени и искал по всему форуму. Есть ли что-то неправильное в используемой логике? Пожалуйста помоги!

Вот код, который я использовал:

Dim FindWord As String, Loc As Range Dim aCell As Range Dim database As Worksheet Dim mastersheet As Worksheet Set database = Workbooks("DataBase09052017.xlsm").Worksheets("Sheet1") Set mastersheet = Workbooks("EAS Apps Migration - Master Data Sheet_v2.0.xlsm").Worksheets("EAS Applications") Dim x, y As Integer x = 2 y = 17 Dim a, b, ctr, c As Integer a = 2 b = 23 c = 17 Do Until x = 885 y = 17 FindWord = database.Cells(x, y).Value Set Loc = mastersheet.Range("W2 : W6344").Find(What:=FindWord) If Not Loc Is Nothing Then database.Cells(x, y + 1).Value = mastersheet.Cells(Loc.Row, 1).Value Set aCell = Loc Do Set aCell = mastersheet.Range("W2: W6344").FindNext(aCell) y = y + 1 If Not aCell Is Nothing Then database.Cells(x, y + 1).Value = mastersheet.Cells(aCell.Row, 1).Value End If Loop While aCell <> Loc End If x = x + 1 Loop End Sub 

Можете ли вы попробовать это? Я думаю, что ваше сравнение циклов было выключено (сравнение Loc и aCell), и вы можете указать некоторые параметры поиска, кроме «Что».

 Sub x() Dim FindWord As String, Loc As Range Dim aCell As String Dim database As Worksheet Dim mastersheet As Worksheet Set database = Workbooks("DataBase09052017.xlsm").Worksheets("Sheet1") Set mastersheet = Workbooks("EAS Apps Migration - Master Data Sheet_v2.0.xlsm").Worksheets("EAS Applications") Dim x As Long, y As Long x = 2 y = 17 Dim a As Long, b As Long, ctr As Long, c As Long a = 2 b = 23 c = 17 Do Until x = 885 y = 17 FindWord = database.Cells(x, y).Value Set Loc = mastersheet.Range("W2:W6344").Find(What:=FindWord) If Not Loc Is Nothing Then aCell = Loc.Address Do database.Cells(x, y + 1).Value = mastersheet.Cells(Loc.Row, 1).Value Set Loc = mastersheet.Range("W2:W6344").FindNext(Loc) y = y + 1 Loop While aCell <> Loc.Address End If x = x + 1 Loop End Sub 
Interesting Posts

получить файл excel в качестве ответа в javascript из службы Rest

Почему столбцы («F: F»). Выберите выбор всего листа?

Функция Excel / формула

Выделите ячейку, если соответствующая ячейка (на другом листе) имеет в ней значение

Экспорт результатов PowerShell для Excel

Как я могу получить фактический диапазон использования для модифицированных улучшений с помощью Epplus?

Как я могу заставить программу запускаться автоматически в определенное время в день (VB.NET)

Как я могу получить списки элементов, игнорирующих пустые ячейки из столбца, используя только формулу excel (без VBA)

Создание отношения между двумя разными столбцами – отношение, которое влияет на другие значения

Pythonic способ хранения и сравнения данных посещаемости csv или xlsx

Отложить макет обновления сводной таблицы

Исправление этого сценария «Отправлено по электронной почте»?

Подсчитайте уникальные элементы в списке, которые соответствуют нескольким критериям

Excel конвертирует URL в изображения (1004)

Байт Заказать Отметить, чтобы читать файлы UTF-8 cvs и excel

Давайте будем гением компьютера.