遍历范围以查找值。如果找到,则返回相同行但不同列的值

时间:2020-02-03 11:26:16

标签: excel vba

我的Excel有两张纸: Sheet1 Sheet2

Sheet1

enter image description here

Sheet2

enter image description here

Sheet1:

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

Sheet2:

Employee
  ID    Category    Location

我希望宏在D列中的每个单元格中循环,以查找值“ Director”。

如果找到值“ Director”,我想在Sheet2中填充列,即A列(对应于Director行)中的1234和5678值,以及C列中的Italy和France,以及“ 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 :(得分:0)

第一次搜索VLOOKUP示例;第二,如果您仍要使用宏,请为{i,j}和Cells [i,j]尝试两个宏