如果一个单元格等于标准,则在一个范围内查找单元格将其值复制到另一列
我很难试图让这个为我工作。 为了帮助解释我需要做什么,我已经在下面制作了一个(希望)非常简单的例子。
我想要做的是:
- 在一个单元格范围内
A:A
findJ Bloggs
(注意可以有多个条目,我需要所有这些) - 当发现
J Blogs
的订单复制他的订单dateB1
,要求删除。 dateC1
和实际del。 dateD1
- 将这些信息粘贴到表格
G1:J4
注意:客户名单可能很长,有些客户可能会单独订单。 我需要生成所有这些命令的列表(不需要检查date是否在过去等)。
每次查询运行时,对于H Simpson
这个时间来说,只有H Simpson
的细节会出现在表格G1:J4
+---------------+----------------+---------------------+------------------+ | Customer | Order Date | Requested Delivery | Actual Delivery | +---------------+----------------+---------------------+------------------+ | J Bloggs | 01/01/2013 | 02/01/2013 | 02/01/2013 | | H Simpson | 05/01/2013 | 08/01/2013 | 09/01/2013 | | A Name | 10/01/2013 | 10/01/2013 | 10/01/2013 | | J Bloggs | 15/01/2013 | 22/01/2013 | 22/01/2013 | +---------------+----------------+---------------------+------------------+
你的幸运日! 我有一个免费的空余时间,并为你写这个代码。
它会询问你的Name
– 你只需要select你想要生成数据名称的单元格
它将在列G:J
创build一个表 ,并在列A:D
粘贴匹配结果
Sub Findining() Dim r As Range, i As Long, j As Long, rng As Range Range("G:J").ClearContents For i = 1 To 4 Cells(1, i + 6) = Cells(1, i) Next i Set r = Application.InputBox("Select Name", Type:=8) If r.Columns.Count > 1 Or r.Rows.Count > 1 Then Do Until (r.Columns.Count = 1 And r.Rows.Count = 1) MsgBox "You can only select 1 name" Set r = Application.InputBox("Select Name", Type:=8) Loop End If For i = 2 To Range("A" & Rows.Count).End(xlUp).Row Set rng = Range("A" & i) If StrComp(r, rng, vbTextCompare) = 0 Then For j = 0 To 3 Cells(Cells(Rows.Count, rng.Offset(0, 6 + j).Column).End(xlUp).Row + 1, rng.Offset(0, 6 + j).Column).Value = rng.Offset(0, j).Value Next j End If Set rng = Nothing Next i Columns.AutoFit End Sub
之前:
后:
至less有三种不同的方法:
- 使用AutoFilter
- 使用macros来提取数据
- 使用VLOOKUP()
使用VLOOKUP()获取多个结果在这里解释:
我每次和瓦西姆一起去,例如: