【问题标题】:Loop through a range to find a value. If found, return a value of same row but different column循环遍历一个范围以找到一个值。如果找到,则返回同一行但不同列的值
【发布时间】:2020-02-03 11:26:16
【问题描述】:

我的 Excel 有两张工作表:Sheet1Sheet2

表 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.AdvancedFilterRange.AutoFilter
  • 通过我的方法可以做到吗?

标签: excel vba


【解决方案1】:

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

【讨论】:

  • 这不是答案。这是一条评论。如果您没有离开cmets的声誉,那么请先获得声誉。
  • 完全看不懂,能不能发展的更好?
猜你喜欢
  • 2022-08-17
  • 1970-01-01
  • 2014-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-10
  • 1970-01-01
  • 2020-11-01
相关资源
最近更新 更多