Используя пример набора данных, найденный в Используя функцию «If» для извлечения данных из другого листа , я пытаюсь использовать функцию If VBA для поиска ключевого слова Speci c, и если есть В качестве совпадения я хотел бы извлечь само Имя, а также его серийный номер и продукт и добавить в последний ряд другой лист в той же книге. Например, если в столбце C мы обнаружим, скажем, cana (обратите внимание, что это не точное совпадение, но достаточно хорошее), то я бы хотел, чтобы VBA помогла мне извлечь Canary Wharf, его серийный номер и продукт следующим образом. к нему, которые являются 8273615 и Консервы, до конца другого листа, и l oop продолжается до конца Кэнэри-Уорф и переходит к Riverdale, который я бы напечатал, скажем, riverd, и повторил то же самое обработать. Символы x означают, что у меня довольно большой набор данных, ничего больше.
Я использовал приведенный ниже код для выполнения задачи:
Option Compare Text
Sub DataExtraction()
Dim SrchRng As Range, cel As Range, i As Integer
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
Set SrchRng = ws1.Range("A1:A100")
For Each cel In SrchRng
For i = 1 To 10
For k = 1 To 1
If InStr(1, cel(i, k).Value, "cana") > 0 Then
ActiveCell(i, k).Value = "Canary Wharf"
ActiveCell(i, k + 1).Value = cel(i, k + 1).Value
ActiveCell(i, k + 2).Value = cel(i, k + 2).Value
End If
Next k
Next i
Next cel
End Sub
Код выше импортировал 10 одинаковых входы, а именно, Canary Wharf, 8273615, Консервы, для 10 раз, я подозреваю, что это было из-за моей команды For i = 1 To 10
. Моя желаемая конечная цель - позволить VBA извлечь Canary Wharf до тех пор, пока рядом с двумя входами справа не останется Canary Wharf. Другими словами, это будет Матрица 2х3, на которую я смотрю. Тогда, естественно, я бы переехал в Ривердейл, и цикл продолжился.