我正在尝试找到一个命令,该命令返回发生特定值的行的索引。另外,该值不能为空。
总共有3个工作表。工作表A包含一个包含所有值的列。工作表B有一个列,其值显示在工作表A中,列中包含该值的更多信息,我想将该信息复制到工作表C中。
说工作表A是(行代表空单元格):
a
b
c
在运行宏之前,工作表B看起来像这样:
a 12 32
c 34 45
b 23 21
在运行宏之前,工作表C看起来像这样:
a
b
c
运行宏之后和这样:
a 12 32
b 23 21
c 34 45
宏的结构如下所示:
答案 0 :(得分:1)
试试这个
Public Sub ProcessData()
Dim i As Long
Dim LastRow As Long
Dim RowNum As Long
With Worksheets("C")
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
For i = 1 To LastRow
If Not IsError(Application.Match(.Cells(i, "A"), Worksheets("A").Columns(1), 0)) Then
RowNum = Application.Match(.Cells(i, "A"), Worksheets("B").Columns(1), 0)
Worksheets("B").Cells(RowNum, "B").Resize(, 2).Copy .Cells(i, "B")
End If
Next i
End With
End Sub
答案 1 :(得分:0)
您是否看过Excel的VLookup功能?您可以使用它在工作表中查找值,然后从该行获取另一个值。 C中的每个单元格都可以使用VLookup从B中获取正确的值(如果不存在则为空白)。
答案 2 :(得分:0)
即 = VLOOKUP(1,A2:C10,2)