Я требую найти значения, примыкающие к двум критериям поиска из таблицы, как это:Возвращаясь значение рядом с двумя критериями поиска
код, который я написал это: найдено
Dim mAin As Worksheet
Dim findc As Range
Dim findsc As Range
Dim code As Long
Dim scode As Integer
Dim i As Integer
Dim ttlrw As Long
i = 1
Set mAin = ActiveSheet
ttlrw = mAin.Columns(1).SpecialCells(xlCellTypeConstants).Count
Do
code = mAin.Cells(i, 5).Value
scode = mAin.Cells(i, 6).Value
Set findc = mAin.Columns(1).Find(code)
Set findsc = mAin.Columns(2).Find(scode)
Do
Set findc = mAin.Columns(1).FindNext(findc)
Set findsc = mAin.Columns(2).FindNext(findsc)
Loop Until findc.Row = findsc.Row
mAin.Cells(i, 7).Value = findsc.Offset(0, 1).Value
i = i + 1
Loop Until i = ttlrw + 1
Значения должны быть выведены рядом с аналогичной смотровой таблицей, за исключением более смешаны.
Также макрос переходит в бесконечный цикл после ряда 5.
мне удалось решить это с помощью индекса, MATCH, & с и превращение его в формулу массива; но я также хотел бы еще больше улучшить понимание VBA.
Было бы намного проще, чтобы ответить на ваш вопрос, если вы предоставили образцы входных данных и ожидаемых результатов. Кроме того, ваш код не проверяет, найдены ли найденные значения. – Shadow
Вы должны посмотреть эту серию видео на Youtube: [Excel VBA Introduction] (мудрые уроки совы). Загрузите [Smart Indenter] (http://www.oaltd.co.uk/indenter/indentpage.asp); он будет форматировать ваш код для вас. Правильный отступ облегчает поиск незакрытых кодовых блоков. –
Спасибо, я обязательно проверю их. И работайте над моим отступом, я даже не могу сказать, если он будет закрыт, если снова взглянуть на него. –