L oop через диапазон, чтобы найти значение. Если найдено, вернуть значение той же строки, но другого столбца - PullRequest
0 голосов
/ 03 февраля 2020

My Excel имеет два листа: Лист1 и Лист2

Лист1

enter image description here

Лист2

enter image description here

Лист1:

Employee
ID       Name       Surname     Category    Location Gender
1234    Emplo1  SurnameEmplo1   Director    Italy    Man
4321    Emplo2  SurnameEmplo2   Technician  Ireland  Woman
9876    Emplo3  SurnameEmplo3   Technician  Russia   Man
6789    Emplo4  SurnameEmplo4   Operator    Spain    Man
5678    Emplo5  SurnameEmplo5   Director    France   Woman
8765    Emplo6  SurnameEmplo6   Operator    Poland   Woman

Лист2:

Employee
  ID    Category    Location

Мне бы хотелось, чтобы мой макрос l oop через каждую ячейку в столбце D в поисках значения «Директор».

Если найдено значение «Директор», я хотел бы заполнить столбцы в Sheet2, то есть значения 1234 и 5678 в столбце A (соответствует строке Director) и Италии и Франции в столбце C, а также «Director» в столбце B.

Извините за мой плохой код, я только начал в VBA и это не работает вообще. Правильный ли подход?

Sub LookUpDirector()

Dim rng As Range
Set rng = Sheets("Sheet1").Range("D2:D7")

On Error Resume Next

'Loop through the Range to find the value

 For Each cell In rng

'If value is found, insert values in Sheet2

   If cell.Value = "Director" Then
     Sheets("Sheet2").Range("B2").Value = cell.Value
     Sheets("Sheet2").Range("A2").Value = "=INDEX(Sheet1!$A$2:$A$7;MATCH(""Director"";Sheet1!$D$2:$D$7;0))"
     Sheets("Sheet2").Range("C2").Value = "=INDEX(Sheet1!$E$2:$E$7;MATCH(""Director"";Sheet1!$D$2:$D$7;0))"
   End If

 Next cell

End Sub

1 Ответ

0 голосов
/ 03 февраля 2020

1-й поиск по примеру VLOOKUP; 2-й, если вы все еще хотите использовать макросы, попробуйте два для {i, j} и Cells [i, j]

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