【发布时间】:2020-02-03 11:26:16
【问题描述】:
我的 Excel 有两张工作表:Sheet1 和 Sheet2
表 1
表 2
表 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
我希望我的宏循环遍历 D 列中的每个单元格,以查找值“Director”。
如果找到值“Director”,我想填写Sheet2中的列,即A列(对应Director行)的值1234和5678,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
【问题讨论】:
-
查看
Range.AdvancedFilter或Range.AutoFilter -
通过我的方法可以做到吗?